Oracle加密解密函数的方法介绍

首先以 sys 用户授权执行 dbms_crypto 包:

grant execute on sys.dbms_crypto to yphoa;

创建一张表,有两个字段,一个字段是要码数据的id,别一个字段是加密key

加密方法:

create or replace function initbudgetencrypt(p_key in varchar2, p_in in varchar2)
  return raw is
  encrypted_raw   raw(4000);
  encryption_type pls_integer := dbms_crypto.encrypt_aes128 +
                                 dbms_crypto.chain_cbc +
                                 dbms_crypto.pad_pkcs5;
begin
  encrypted_raw := dbms_crypto.encrypt(src => utl_i18n.string_to_raw(p_in,'al32utf8'),
                                       typ => encryption_type,
                                       key => p_key);
  return encrypted_raw;
end;

解密方法:
create or replace function initbudgettest(p_key in varchar2,
                                          p_in  in raw)
  return varchar2 is
  output_string   varchar2(4000);
  decrypted_raw   raw(4000);
  encryption_type pls_integer := dbms_crypto.encrypt_aes128 +
                                 dbms_crypto.chain_cbc +
                                 dbms_crypto.pad_pkcs5;
begin
  decrypted_raw := dbms_crypto.decrypt(src => p_in,
                                       typ => encryption_type,
                                       key => p_key);
  output_string := utl_i18n.raw_to_char(decrypted_raw, 'al32utf8');
  return output_string;
end;
(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐