主頁 > 知識庫 > Oracle數(shù)據(jù)加密方法分析

Oracle數(shù)據(jù)加密方法分析

熱門標簽:慧營銷crm外呼系統(tǒng)丹丹 哈爾濱電話機器人銷售招聘 山東crm外呼系統(tǒng)軟件 地圖標注養(yǎng)老院 開發(fā)外呼系統(tǒng) 愛客外呼系統(tǒng)怎么樣 百度地圖標注途經(jīng)點 圖吧網(wǎng)站地圖標注 哪個400外呼系統(tǒng)好

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

使用MD5編碼實現(xiàn)數(shù)據(jù)庫用戶密碼字段的加密

一、前言

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

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

二、技術(shù)點

1. DBMS_OBFUSCATION_TOOLKIT.MD5

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

2. Utl_Raw.Cast_To_Raw

DBMS_OBFUSCATION_TOOLKIT.MD5返回的字串,是RAW類型,要正確顯示,需要經(jīng)過Utl_Raw.Cast_To_Raw轉(zhuǎn)換

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')

更多關(guān)于Oracle相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Oracle常用函數(shù)匯總》、《Oracle日期與時間操作技巧總結(jié)》及《php+Oracle數(shù)據(jù)庫程序設(shè)計技巧總結(jié)》

希望本文所述對大家Oracle數(shù)據(jù)庫程序設(shè)計有所幫助。

您可能感興趣的文章:
  • Oracle中的MD5加密詳解
  • Java、JavaScript、Oracle、MySQL中實現(xiàn)的MD5加密算法分享
  • Oracle定義DES加密解密及MD5加密函數(shù)示例
  • Oracle 存儲過程加密方法
  • oracle 存儲過程加密的方法
  • oracle下加密存儲過程的方法

標簽:甘肅 開封 周口 和田 武漢 青島 固原 承德

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Oracle數(shù)據(jù)加密方法分析》,本文關(guān)鍵詞  Oracle,數(shù)據(jù),加密,方法,分析,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Oracle數(shù)據(jù)加密方法分析》相關(guān)的同類信息!
  • 本頁收集關(guān)于Oracle數(shù)據(jù)加密方法分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章