密码字段,使用md5加密,字段存储用raw,避免字符集的问题

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值