关于Oracle针对中文的md5加密
大部分都是讲基本oracle md5加密,在使用中发现,针对中文md5加密,与程序中加密结果不一致。 经研究发现需要在加密之前经两次转码才行。 [sql] view plain copy CREATE OR REPLACE FUNCTION to_md5(input_string IN VARCHAR2) RETURN VARCHAR2 IS retval varchar2(128); BEGIN retval := convert(input_string,'ZHS16GBK'); retval := convert(retval,'UTF8'); retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING =>retval)); RETURN lower(retval); END; 16位md5 只是在32位md5中截取其中一部分 [sql] view plain copy create or replace function to_md5_16(input_string in varchar2) return varchar2 is --Result varchar2; md5 varchar2(32); begin md5 := to_md5(input_string); return