Oracle 提供的MD5加密函数

  • Post author:
  • Post category:其他




一、技术点





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/