Oracle和MySQL md5加密

mysql> select MD5(15201061106);
+----------------------------------+
| MD5(15201061106)                 |
+----------------------------------+
| ba726d7afbda0488aee313ed5cf31270 |
+----------------------------------+
1 row in set (0.00 sec)



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;
Oracle>select MD5(15201061106) from dual; 
MD5(15201061106)
----------------------------------------------
BA726D7AFBDA0488AEE313ED5CF31270


这个字符串实际上是16个字节的值用十六进制表示的结果,其中的字符是0-9和A-F,正因为如此,其中的字母大小写是无关的,都表示同一个值。

create or replace function cif_base_kk.MD5(

pass in varchar2)

return varchar2 is

retval varchar2(32);

begin

     if pass is null then

           return null;

      end if;

    retval := utl_raw.cast_to_raw(dbms_obfuscation_toolkit.MD5(input_string => pass));

    return retval;

end;