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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle定义DES加密解密及MD5加密函数示例相关的知识,希望对你有一定的参考价值。

参考技术A (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);

oracle中实现md5加密

记得要实现md5加密,在oracle 11g 和 12c中是有不同的方式的,在12c中较为简单,记得直接有预定义的函数。

但是在11g中要实现就需要自己进行一些额外的处理,以下给出一个md5函数的实现(来自网络):

(1)自定义函数
create or replace FUNCTION MD5(
passwd IN VARCHAR2)
RETURN VARCHAR2
IS
val varchar2(32);
begin
  val := utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string => passwd)) ;
  RETURN val;
END;
(2)应用
SELECT decode(MOBILE_PHONE,NULL,‘‘,md5(MOBILE_PHONE))  from 表明 ;

以上是关于Oracle定义DES加密解密及MD5加密函数示例的主要内容,如果未能解决你的问题,请参考以下文章

记录新项目中遇到的技术及自己忘记的技术点DES加密解密,MD5加密,字符串压缩解压,字符串截取等操作

oracle 对字段进行 MD5 加密处理函数

oracle中实现md5加密

如何实现C语言的DES加密算法实现,请关注

IOS中DES与MD5加密方案

MD5 不可逆加密,Des对称可逆加密 ,RSA非对称可逆加密 ,数字证书 SSL