SELECT DBMS_OBFUSCATION_TOOLKIT.MD5(input => utl_raw.cast_to_raw('tg')) a,
DBMS_OBFUSCATION_TOOLKIT.MD5(input => utl_raw.cast_to_raw('123456')) b,
DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => 'tg') aa,
DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => '123456') bb
FROM dual;
md5有二种方式:
1,输入raw,输出raw
2,输入varchar2,输出varchar2
如果使用varchar2,则bgk扩展unicode时可能出现异常(如果使用多重md5加密),for example:
FUNCTION EncryptPWD(p_User VARCHAR2, p_Pwd VARCHAR2) RETURN VARCHAR2 IS
v_Pwd VARCHAR2(60) := DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => p_Pwd);
v_User VARCHAR2(60) := DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => upper(p_User));
v_Cmb VARCHAR2(60);
BEGIN
IF p_User IS NULL OR p_Pwd IS NULL THEN
error(57001); --用户名或密码不允许为空
END IF;
FOR i IN 1 .. least(lengthb(v_Pwd), lengthb(v_User)) LOOP
v_Cmb := v_Cmb || substrb(v_User, i, 1) || substrb(v_Pwd, i, 1);
END LOOP;
RETURN DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => v_Cmb);
END;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11990065/viewspace-754556/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11990065/viewspace-754556/