一、技术点
1、 DBMS_OBFUSCATION_TOOLKIT.MD5
DBMS_OBFUSCATION_TOOLKIT.MD5
是MD5
编码的数据包函数,
可以直接在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
进行转换,否则最后出来的结果是错误的。