一、技术点
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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9399028/viewspace-1309563/