⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 get_enc_val_6.sql

📁 Oracle PLSQL for DBAs 源代码
💻 SQL
字号:
CREATE OR REPLACE FUNCTION get_enc_val (
   p_in_val      IN   VARCHAR2,
   p_key         IN   VARCHAR2,
   p_algorithm   IN   VARCHAR2 := 'AES128',
   p_iv          IN   VARCHAR2 := NULL
)
   RETURN VARCHAR2
IS
   l_enc_val    RAW (4000);
   l_enc_algo   PLS_INTEGER;
   l_in         RAW (4000);
   l_iv         RAW (4000);
   l_key        RAW (4000);
   l_ret        VARCHAR2 (4000);
BEGIN
   l_enc_algo :=
      CASE p_algorithm
         WHEN 'DES'
            THEN dbms_crypto.encrypt_des
         WHEN '3DES_2KEY'
            THEN dbms_crypto.encrypt_3des_2key
         WHEN '3DES'
            THEN dbms_crypto.encrypt_3des
         WHEN 'AES128'
            THEN dbms_crypto.encrypt_aes128
         WHEN 'AES192'
            THEN dbms_crypto.encrypt_aes192
         WHEN 'AES256'
            THEN dbms_crypto.encrypt_aes256
         WHEN 'RC4'
            THEN dbms_crypto.encrypt_rc4
      END;
   l_in := utl_i18n.string_to_raw (p_in_val, 'AL32UTF8');
   l_iv := utl_i18n.string_to_raw (p_iv, 'AL32UTF8');
   l_key := utl_i18n.string_to_raw (p_key, 'AL32UTF8');
   l_enc_val :=
      dbms_crypto.encrypt (src      => l_in,
                           KEY      => l_key,
                           iv       => l_iv,
                           typ      =>   l_enc_algo
                                       + dbms_crypto.chain_cbc
                                       + dbms_crypto.pad_pkcs5
                          );
   l_ret := RAWTOHEX (l_enc_val);
   RETURN l_ret;
END;
/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -