Oracle中的MD5加密

風靈使發表於2018-10-21

一、技術點

1、 DBMS_OBFUSCATION_TOOLKIT.MD5

DBMS_OBFUSCATION_TOOLKIT.MD5MD5編碼的資料包函式,

可以直接在sql工作去呼叫,

select utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(input_string =>'1111')) from Dual;

結果需要轉換一下

2、Utl_Raw.Cast_To_Raw

DBMS_OBFUSCATION_TOOLKIT.MD5返回的字串,是RAW型別,要正確顯示,需要經過Utl_Raw.Cast_To_Raw轉換

二、應用

1、函式的運用.

create or replace FUNCTION MD5(
passwd IN VARCHAR2)
RETURN VARCHAR2
IS
val varchar2(32);
begin
  val := utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string => passwd)) ;
  RETURN val;
END;

呼叫md5函式示例:

select lower(md5('jack{1111}')) from dual;

其中jack是鹽值,1111是密碼,意思是在jack的密碼1111加密,不懂鹽值得可以去百度一下概念。

2.資料庫儲存

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進行轉換,否則最後出來的結果是錯誤的。

相關文章