Oracle加密和解密函式

2022-09-02 08:57:11 字數 2007 閱讀 3377

在資料存入一些敏感資訊(姓名,身份證,**等)時,一般要求都是要進行加密儲存的,下面是一組oracle加密和解密函式

create or replace function

ds_func_encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is

v_text varchar2(4000);

v_enc varchar2(4000);

raw_input raw(20000) ;

key_input raw(1000) ;

decrypted_raw raw(20000);

v_errortext varchar2(500);

begin

if(p_text is null or p_text = '' )

then return '';

end if;

dbms_output.put_line(p_text);

v_text := rpad( p_text, (trunc(lengthb(p_text)/8)+1)*8, chr(0));

dbms_output.put_line(v_text);

raw_input := utl_i18n.string_to_raw(v_text,'zhs16gbk');

key_input := utl_i18n.string_to_raw(p_key,'zhs16gbk');

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;

exception

when others then

v_errortext := 'dserror:'||substr(sqlerrm, 1, 200);

return v_errortext;

end;

create or replace function ds_func_decrypt_des(p_text varchar2, p_key varchar2) return varchar2 is

p_text_raw raw(20000);

p_key_raw raw(20000);

v_text_raw raw(20000);

v_text varchar2(4000);

v_errortext varchar2(500);

begin

if(p_text is null or p_text = '' )

then return '';

end if;

p_text_raw := hextoraw(p_text);

p_key_raw := utl_i18n.string_to_raw(p_key, 'zhs16gbk');

dbms_obfuscation_toolkit.desdecrypt(input => p_text_raw, key =>p_key_raw, decrypted_data=> v_text_raw);

v_text := utl_i18n.raw_to_char(v_text_raw, 'zhs16gbk');

dbms_output.put_line(v_text);

return rtrim(v_text,chr(0));

exception

when others then

v_errortext := 'dserror:'||substr(sqlerrm, 1, 200);

return v_errortext;

end;

加密和解密函式都有兩個入參 

p_text:加密字段

p_key:加密金鑰(防止加密被容易破解,最短8位,不過要記住,否則無法解密)

C 實現AES加密和解密函式

aes the advanced encryption standard 是美國國家標準與技術研究所用於加密電子資料的規範。它被預期能成為人們公認的加密包括金融 電信和 數字資訊的方法。aes 是乙個新的可以用於保護電子資料的加密演算法。明確地說,aes 是乙個迭代的 對稱金鑰分組的密碼,它可以使用...

php加密函式與解密函式

去網上找了下。php常用的加密函式有 md5加密 不可逆 crypt加密 不可逆 sha1加密 不可逆 urlencode加密 可逆 base64編碼加密 可逆 還是見識的太少,這其中我只用過md5和base64 最常用的還是md5 md5的加密雖不可逆,但一些簡單的 兩次md5加密的字串,花點錢還...

PHP url 加密解密函式

php url 加密解密函式 base64 encode語法 string base64 decode string data str d3d3ljexmwnulm5ldnk7vtu9zlpmzfg 定義字串 echo base64 decode str 輸出解碼後的內容 str www.10li....