Oracle中MD5加密(详细)


一、技术点 :

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、创建md5函数

CREATE OR REPLACE FUNCTION MD5 (
 PASSWD IN VARCHAR2)
 RETURN VARCHAR2
 IS
  --PASSWD 需要加密的字符
  --@REMARK:MD5加密
 retval varchar2(32);
 BEGIN
   retval := UTL_RAW.CAST_TO_RAW(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => PASSWD));
 RETURN retval;
 END;

Oracle针对中文的md5加密

CREATE OR REPLACE 
FUNCTION MD5( passwd IN VARCHAR2) RETURN VARCHAR2
IS
    retval varchar2(512);
BEGIN 
    retval := convert(passwd,'ZHS16GBK');  
    retval := convert(retval,'UTF8');  
    retval := (case when passwd is null then null else utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => retval)) end);
    RETURN retval;
END;

2、测试,函数运行正确

select md5('test') from dual;
--------------------------------------------------------------------------------
098F6BCD4621D373CADE4E832627B4F6

运行正常


总结

如果此篇文章有帮助到您, 希望打大佬们能关注点赞收藏评论支持一波,非常感谢大家!
如果有不对的地方请指正!!!
参考1
参考2
参考3

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lfwh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值