oracle定义DES加密解密及MD5加密函数示例
创建或替换函数
encrypt_des(p_text VARCHAR2,p_key VARCHAR2)返回VARCHAR2是
v_text VARCHAR2(4000);
v_enc VARCHAR2(4000);
raw_input原(128);
key_input原(128);
decrypted_raw原(2048);
开始
v_text:= RAPD(p_text,(trunc(长度(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(输入= raw_input,关键= key_input,encrypted_data,= > decrypted_raw);
v_enc:= rawtohex(decrypted_raw);
dbms_output.put_line(v_enc);
返回v_enc;
结束;
(2)des解密函数
创建或替换功能decrypt_des(p_text VARCHAR2,p_key VARCHAR2)返回VARCHAR2是
v_text VARCHAR2(2000);
开始
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);
返回v_text;
结束;
(3)MD5加密函数
创建或替换函数MD5(密码在VARCHAR2)
返回空
是
用VARCHAR2(32);
开始
用:= utl_raw.cast_to_raw(dbms_obfuscation_toolkit.md5(input_string = passwd));
回用;
结束;
(4)功能使用示例
DES加密:更新tb_salarysign_staff的s.staffpwd = encrypt_des(s.staffpwd,测试# 5124 *!德);
解密:选择decrypt_des(s.staffpwd,测试# 5124 *!德)从tb_salarysign_staff S
MD5加密:更新tb_salarysign_staff的s.staffpwd = MD5(s.staffpwd);