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

📄 get_enc_val_5.sql

📁 Oracle PLSQL for DBAs 源代码
💻 SQL
字号:
CREATE OR REPLACE FUNCTION get_enc_val (
   p_in_val   IN   VARCHAR2,
   p_key      IN   VARCHAR2,
   p_iv       IN   VARCHAR2 := NULL,
   p_which    IN   NUMBER := 0
)
   RETURN VARCHAR2
IS
   l_enc_val   VARCHAR2 (200);
   l_in_val    VARCHAR2 (200);
   l_iv        VARCHAR2 (200);
BEGIN
   IF p_which = 0
   THEN
      IF LENGTH (p_key) < 16
      THEN
         raise_application_error
                               (-20001,
                                'Key length less than 16 for two-pass scheme'
                               );
      END IF;
   ELSIF p_which = 1
   THEN
      IF LENGTH (p_key) < 24
      THEN
         raise_application_error
                             (-20002,
                              'Key length less than 24 for three-pass scheme'
                             );
      END IF;
   ELSE
      raise_application_error (-20003,
                                  'Incorrect value of which '
                               || p_which
                               || '; must be 0 or 1'
                              );
   END IF;

   l_in_val := RPAD (p_in_val, (8 * ROUND (LENGTH (p_in_val) / 8, 0) + 8));
   l_iv := RPAD (p_iv, (8 * ROUND (LENGTH (p_iv) / 8, 0) + 8));
   l_enc_val :=
      DBMS_OBFUSCATION_TOOLKIT.des3encrypt (input_string      => l_in_val,
                                            key_string        => p_key,
                                            iv_string         => l_iv,
                                            which             => p_which
                                           );
   l_enc_val := RAWTOHEX (UTL_RAW.cast_to_raw (l_enc_val));
   RETURN l_enc_val;
END;
/

⌨️ 快捷键说明

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