oracle加密encrypt,解密decrypt
程序员文章站
2022-06-17 21:55:02
[toc] oracle加密encrypt,解密decrypt 有的oracle版本没有加解密函数,以下操作可以手动添加 oracle数据使用加密解密,我们首先要先赋予dbms_crypto权限给用户。 加密 解密 ......
目录
oracle加密encrypt,解密decrypt
有的oracle版本没有加解密函数,以下操作可以手动添加
oracle数据使用加密解密,我们首先要先赋予dbms_crypto权限给用户。
grant execute on dbms_crypto to user;
加密
create or replace function f_encrypt_data(number_in in varchar2, secretkey in varchar2) return raw is number_in_raw raw(128) := utl_i18n.string_to_raw(number_in, 'al32utf8'); key_number varchar2(32) := secretkey; key_raw raw(128) := utl_raw.cast_from_number(key_number); encrypted_raw raw(128); begin encrypted_raw := dbms_crypto.encrypt(src => number_in_raw, typ => dbms_crypto.des_cbc_pkcs5, key => key_raw); return encrypted_raw; end;
解密
create or replace function f_decrypt_data(encrypted_raw in raw, secretkey in varchar2) return varchar2 is decrypted_raw raw(128); key_number varchar2(32) := secretkey; key_raw raw(128) := utl_raw.cast_from_number(key_number); begin decrypted_raw := dbms_crypto.decrypt(src => encrypted_raw, typ => dbms_crypto.des_cbc_pkcs5, key => key_raw); return utl_i18n.raw_to_char(decrypted_raw, 'al32utf8'); end;