Oracle 提供的MD5加密函式

xz43發表於2014-10-25

一、技術點 
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轉換

 

二、應用

1、直接呼叫

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;

注意:可以在儲存過程中直接呼叫,如果要巢狀呼叫md5時,記得每次呼叫後都用Utl_Raw.Cast_To_Raw進行轉換,否則最後出來的結果是錯誤的。

 

2、建構函式後,再呼叫

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;

 

呼叫md5函式示例:

select md5(1) from dual

注意:這裡加密得到的結果為大寫,而上一章的javascript MD5加密結果為小寫,轉換一下大小寫就可以得到相同的結果。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-1309563/,如需轉載,請註明出處,否則將追究法律責任。

相關文章