国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle數據加密方法分析

2024-08-29 13:59:17
字體:
來源:轉載
供稿:網友

本文實例講述了Oracle數據加密方法。分享給大家供大家參考,具體如下:

使用MD5編碼實現數據庫用戶密碼字段的加密

一、前言

眾所周知,MD5是目前應用最多的密碼保護方法,該編碼傳說為不可逆加密編碼(也就是說,永運無法倒算原碼)。 使用MD5加密用戶的操作密碼,可以有效防止系統維護人員直接進入數據庫時出現系統安全漏洞(直接使用SELECT語句查詢,將用戶密碼字段只能看到亂碼,或者"****")

這里針對密碼字段加密,作一實例,希望能給大家系統建設過程帶來幫助。

二、技術點

1. DBMS_OBFUSCATION_TOOLKIT.MD5

DBMS_OBFUSCATION_TOOLKIT.MD5是MD5編碼的數據包函數,但偶在使用select DBMS_OBFUSCATION_TOOLKIT.MD5(input_string =>'abc') a from Dual時,卻有錯誤提示,看來該函數只能直接在程序包中調用,不能直接應用于SELECT語句。

2. Utl_Raw.Cast_To_Raw

DBMS_OBFUSCATION_TOOLKIT.MD5返回的字串,是RAW類型,要正確顯示,需要經過Utl_Raw.Cast_To_Raw轉換

create or replace package test_md5 as  function fn_getmd5(p_str in varchar2)    return varchar2;  function fn_checkuser(p_username in varchar2,p_password in varchar2)    return number;end;create or replace package body test_md5 as  function fn_getmd5(p_str in varchar2)    return varchar2 as  begin    return DBMS_OBFUSCATION_TOOLKIT.MD5(      input_string => Upper(p_str)    );  end;  function fn_checkuser(p_username in varchar2,p_password in varchar2)    return number  is    l_password varchar(1000);  begin    select password into l_password from test_user    where upper(username)=upper(p_username) and password=Test_MD5.FN_GetMD5(p_password);    if l_password is null Then      return 0;    else      return 1;    end if;    exception    when NO_DATA_FOUND then      return 3;  end;end;

測試:

Delete Test_User;Insert Into Test_User Values('A',Test_MD5.FN_GetMD5('aa'));Insert Into Test_User Values('B',Test_MD5.FN_GetMD5('bb'));select * from test_user;Select Test_MD5.FN_CheckUser('a','aa') From Dual;Select Test_MD5.FN_CheckUser('a','bb') From Dual;select * from Test_User t where t.password=test_md5.fn_getmd5('aa')

希望本文所述對大家Oracle數據庫程序設計有所幫助。


注:相關教程知識閱讀請移步到oracle教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都昌县| 阜南县| 华安县| 育儿| 顺昌县| 台南市| 蒙阴县| 望谟县| 宁国市| 韶关市| 通道| 扎鲁特旗| 蓬安县| 吉木萨尔县| 壤塘县| 德钦县| 拉孜县| 娱乐| 澄江县| 宁都县| 八宿县| 鄢陵县| 霍州市| 普定县| 佳木斯市| 岱山县| 府谷县| 松阳县| 云南省| 屏东市| 寻甸| 台东市| 房产| 株洲县| 龙南县| 奇台县| 成武县| 台湾省| 浪卡子县| 平潭县| 仁化县|