Oracle中的MD5加密詳解
一、技術(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ò)誤提示,看來(lái)該函數(shù)只能直接在程序包中調(diào)用,不能直接應(yīng)用于SELECT語(yǔ)句。
2、Utl_Raw.Cast_To_Raw
DBMS_OBFUSCATION_TOOLKIT.MD5返回的字串,是RAW類型,要正確顯示,需要經(jīng)過(guò)Utl_Raw.Cast_To_Raw轉(zhuǎn)換
二、應(yīng)用
1、直接調(diào)用
declare
v2 varchar2(32); begin
v2 := Utl_Raw.Cast_To_Raw(sys.dbms_obfuscation_toolkit.md5(input_string => '111'));
dbms_output.put_line(v2); end;
注意:可以在存儲(chǔ)過(guò)程中直接調(diào)用,如果要嵌套調(diào)用md5時(shí),記得每次調(diào)用后都用Utl_Raw.Cast_To_Raw進(jìn)行轉(zhuǎn)換,否則最后出來(lái)的結(jié)果是錯(cuò)誤的。
2、構(gòu)造函數(shù)后,再調(diào)用
CREATE OR REPLACE FUNCTION MD5(
passwd IN VARCHAR2) RETURN VARCHAR2 IS
retval varchar2(32); BEGIN
retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)); RETURN retval; END;
調(diào)用md5函數(shù)示例:
select md5(1) from dual
另附:Oracle中MD5函數(shù)語(yǔ)句
--Oracle中MD5函數(shù)語(yǔ)句
create or replace FUNCTION "MD5HASH" (str IN VARCHAR2)
RETURN VARCHAR2
IS v_checksum VARCHAR2(32);
BEGIN
v_checksum := LOWER( RAWTOHEX( UTL_RAW.CAST_TO_RAW( sys.dbms_obfuscation_toolkit.md5(input_string => str) ) ) );
RETURN v_checksum;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise RAISE;
END md5hash;
相關(guān)文章
ORACLE常見(jiàn)錯(cuò)誤代碼的分析與解決(三)
ORACLE常見(jiàn)錯(cuò)誤代碼的分析與解決(三)...2007-03-03Oracle 數(shù)據(jù)顯示 橫表轉(zhuǎn)縱表
橫表轉(zhuǎn)縱表亦可用與decode意義相似的case語(yǔ)句實(shí)現(xiàn),原理同該語(yǔ)句,這里不再過(guò)多描述。2009-07-07Oracle中pivot函數(shù)圖文實(shí)例詳解
pivot操作是一種數(shù)據(jù)處理方法,可以將一個(gè)表中的行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù),這種轉(zhuǎn)換對(duì)于表格數(shù)據(jù)的分析和展示非常有用,下面這篇文章主要給大家介紹了關(guān)于Oracle中pivot函數(shù)的相關(guān)資料,需要的朋友可以參考下2023-05-05WIN7下ORACLE10g服務(wù)端和客戶端的安裝圖文教程
WIN7下安裝ORACLE10gd的服務(wù)端和客戶端的方法,在安裝之前需要先卸載oracle 10g,具體安裝方法和詳細(xì)說(shuō)明大家可以參考下本文2017-07-07Oracle存儲(chǔ)過(guò)程游標(biāo)用法分析
這篇文章主要介紹了Oracle存儲(chǔ)過(guò)程游標(biāo)用法,結(jié)合實(shí)例形式分析了游標(biāo)的使用步驟與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06Oracle導(dǎo)出導(dǎo)入表結(jié)構(gòu)操作實(shí)戰(zhàn)記錄
在日常數(shù)據(jù)庫(kù)維護(hù)中,經(jīng)常會(huì)遇到導(dǎo)出數(shù)據(jù)表的需求,下面這篇文章主要給大家介紹了關(guān)于Oracle導(dǎo)出導(dǎo)入表結(jié)構(gòu)操作的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02Oracle數(shù)據(jù)庫(kù)及圖形化界面安裝教程圖解
本文通過(guò)圖文并茂的形式給大家介紹了Oracle數(shù)據(jù)庫(kù)及圖形化界面安裝教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-08-08Oracle開(kāi)發(fā)之分析函數(shù)總結(jié)
本文是對(duì)Oracle中分析函數(shù)做的總結(jié),主要總結(jié)了前幾篇關(guān)于分析函數(shù)、窗口函數(shù)、報(bào)表函數(shù)文章的內(nèi)容,需要的朋友可以參考下。2016-05-05