佳木斯湛栽影视文化发展公司

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

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

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

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

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

一、前言

眾所周知,MD5是目前應(yīng)用最多的密碼保護方法,該編碼傳說為不可逆加密編碼(也就是說,永運無法倒算原碼)。 使用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)用,不能直接應(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日期與時間操作技巧總結(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下加密存儲過程的方法

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

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

    • 400-1100-266
    申扎县| 永吉县| 阳春市| 青铜峡市| 汉沽区| 南郑县| 陆良县| 洪湖市| 新泰市| 吴忠市| 南城县| 娱乐| 河南省| 克什克腾旗| 乌海市| 岳阳县| 务川| 南汇区| 得荣县| 广河县| 临漳县| 昌图县| 曲沃县| 上栗县| 东兴市| 万载县| 绵阳市| 新干县| 乌兰察布市| 公安县| 临海市| 荥经县| 高淳县| 墨脱县| 龙游县| 两当县| 安远县| 三亚市| 巴里| 兴化市| 林芝县|