Oracle 实现 加密与解密

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、加密

CREATE OR REPLACE PROCEDURE LF.p_encrypt

(decrypted_string1 in varchar2,encrypted_string1 out raw)

IS

key_string VARCHAR2(8):='shuanciy';

encrypted_string VARCHAR2(1000);

encrypted_raw raw(1000);

rawkey raw(240);

decrypted_key VARCHAR2(24);

iMode integer;

BEGIN

iMode:=1;

decrypted_key:=Lpad(to_char(decrypted_string1),24,'0');

for i in1..length(key_string)

loop

rawkey := rawkey||hextoraw(to_char(ascii(substr(key_string, i,1))));

end loop;

encrypted_string:=dbms_obfuscation_toolkit.DES3Encrypt(

decrypted_key,

key_string => rawkey,

which => iMode);

encrypted_raw := UTL_RAW.CAST_TO_RAW(encrypted_string);

encrypted_string1:=encrypted_raw;

END;

/

CREATE OR REPLACE FUNCTION LF.SF_P_ENCRYPT(abc IN RAW)

RETURN VARCHAR2

IS

bcd VARCHAR2(500);

-----------------------------------------------

---加密function add by Near 2015-02-03

-----------------------------------------------

BEGIN

p_encrypt (decrypted_string1 => abc, encrypted_string1 => bcd);

RETURN(bcd);

END;

/

二、解密

CREATE OR REPLACE PROCEDURE LF.p_decrypt

(encrypted_string1 in raw,decrypted_string1 out varchar2)

IS

key_string VARCHAR2(8):='shuanciy';

rawkey raw(240);

decrypted_string VARCHAR2(1000);

iMode integer;

BEGIN

iMode:=1;

for i in1..length(key_string)

loop

rawkey := rawkey||hextoraw(to_char(ascii(substr(key_string, i,1))));

end loop;

decrypted_string:=dbms_obfuscation_toolkit.DES3Decrypt(

UTL_RAW.CAST_TO_VARCHAR2(encrypted_string1),

key_string => rawkey,

which => iMode);

decrypted_string1:=trim(decrypted_string);

END;

/

CREATE OR REPLACE FUNCTION LF.SF_P_DECRYPT(abc IN RAW)

RETURN NUMBER

IS

bcd VARCHAR2(500);

-----------------------------------------------

---解密function add by Near 2015-02-03

-----------------------------------------------

BEGIN

p_decrypt (encrypted_string1 => abc, decrypted_string1 => bcd);

RETURN(bcd);

END;

/

相关文档
最新文档