文章目录
一、技术点 :
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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/88164.html