Oracle定义DES加密解密及MD5加密函数示例

 更新时间:2014年08月01日 10:09:51   投稿:whsnow  
本节主要介绍了Oracle中定义DES加密解密及MD5加密函数,感兴趣的朋友可以参考下

(1)DES加密函数

create or replace function
encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
v_text varchar2(4000);
v_enc varchar2(4000);
raw_input RAW(128) ;
key_input RAW(128) ;
decrypted_raw RAW(2048);
begin
v_text := rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0));
raw_input := UTL_RAW.CAST_TO_RAW(v_text);
key_input := UTL_RAW.CAST_TO_RAW(p_key);
dbms_obfuscation_toolkit.DESEncrypt(input => raw_input,key => key_input,encrypted_data =>decrypted_raw);
v_enc := rawtohex(decrypted_raw);
dbms_output.put_line(v_enc);
return v_enc;
end;

(2)DES解密函数

create or replace function decrypt_des(p_text varchar2,p_key varchar2) return varchar2 is
v_text varchar2(2000); 
begin
dbms_obfuscation_toolkit.DESDECRYPT(input_string => UTL_RAW.CAST_TO_varchar2(p_text),key_string =>p_key, decrypted_string=> v_text);
v_text := rtrim(v_text,chr(0));
dbms_output.put_line(v_text);
return v_text;
end;

(3)MD5加密函数

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;

(4)函数使用示例

DES加密: update tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5&124*!de');

DES解密:select decrypt_des(s.staffpwd, 'test#5&124*!de') from tb_salarysign_staff s

MD5加密: update tb_salarysign_staff s set s.staffpwd = md5(s.staffpwd);

PS:关于加密运算,这里再为大家提供几款比较实用的工具供大家参考使用:

MD5在线加密工具:

http://tools.jb51.net/password/CreateMD5Password

在线散列/哈希算法加密工具:

http://tools.jb51.net/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:

http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:

http://tools.jb51.net/password/sha_encode

相关文章

  • Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁

    Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁

    Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁的实现方法
    2009-02-02
  • [Oracle] 分析AWR报告的方法介绍

    [Oracle] 分析AWR报告的方法介绍

    因为AWR报告非常长,不可能从头到尾一字不漏的去看,要有选择的去看重点部分。最好能对照的来读,即和系统正常情况下的AWR报告对比,找差异。以下就是对分析AWR报告的方法进行了介绍,需要的朋友参考下
    2013-07-07
  • Oracle中的ALL_TAB_COLUMNS视图语句详解

    Oracle中的ALL_TAB_COLUMNS视图语句详解

    ALL_TAB_COLUMNS 是 Oracle 数据库的一个数据字典视图,用于提供关于数据库中所有可见表的列信息,这篇文章主要介绍了Oracle中的ALL_TAB_COLUMNS视图语句,需要的朋友可以参考下
    2024-08-08
  • Oracle开发之分析函数总结

    Oracle开发之分析函数总结

    本文是对Oracle中分析函数做的总结,主要总结了前几篇关于分析函数、窗口函数、报表函数文章的内容,需要的朋友可以参考下。
    2016-05-05
  • Oracle中BLOB、CLOB的读取和写入方式

    Oracle中BLOB、CLOB的读取和写入方式

    Oracle数据库中,大类型字段(LOB)用于存储大量数据,包括文本、图像、视频等,主要类型有CLOB、BLOB、NCLOB和BFILE,CLOB用于存储大段文本,BLOB用于存储二进制数据,NCLOB适用于多国语言文本,而BFILE存储外部文件的引用
    2024-10-10
  • SQL 错误 [1722] [42000]: ORA-01722: 无效数字解决办法

    SQL 错误 [1722] [42000]: ORA-01722: 无效数字解决办法

    这篇文章主要给大家介绍了关于SQL 错误 [1722] [42000]: ORA-01722: 无效数字的解决办法,ORA-01722是一个错误代码,当试图将一个字符串转换为数字,但字符串无法转换为数字时会出现这个错误,需要的朋友可以参考下
    2024-06-06
  • plsql 连接oracle数据库详细配置的方法步骤

    plsql 连接oracle数据库详细配置的方法步骤

    这篇文章主要介绍了plsql 连接oracle数据库详细配置的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Oracle 多参数查询语句

    Oracle 多参数查询语句

    这篇文章主要介绍了Oracle 多参数查询语句 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • Oracle中分割字符串的方法实例代码

    Oracle中分割字符串的方法实例代码

    最近遇到一个问题,需要把一个带有,的字符串拆分成多行,下面这篇文章主要给大家介绍了关于Oracle中分割字符串的方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Oracle中基于hint的3种执行计划控制方法详细介绍

    Oracle中基于hint的3种执行计划控制方法详细介绍

    这篇文章主要介绍了Oracle中基于hint的3种执行计划控制方法详细介绍,它们分别是OUTLINE(大纲)、SQL PROFILE(概要文件)、SQL BASELINE(基线),文中包含大量实例,需要的朋友可以参考下
    2014-07-07

最新评论