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

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

熱門標(biāo)簽:服務(wù)外包 鐵路電話系統(tǒng) 地方門戶網(wǎng)站 AI電銷 百度競價(jià)排名 呼叫中心市場需求 Linux服務(wù)器 網(wǎng)站排名優(yōu)化

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

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

一、前言

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

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

二、技術(shù)點(diǎn)

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í),卻有錯(cuò)誤提示,看來該函數(shù)只能直接在程序包中調(diào)用,不能直接應(yīng)用于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日期與時(shí)間操作技巧總結(jié)》及《php+Oracle數(shù)據(jù)庫程序設(shè)計(jì)技巧總結(jié)》

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

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

標(biāo)簽:崇左 湘潭 湖南 蘭州 銅川 仙桃 黃山 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle數(shù)據(jù)加密方法分析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266