首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用dbms_obfuscation_toolkit替换dbms_crypto

如何用dbms_obfuscation_toolkit替换dbms_crypto
EN

Stack Overflow用户
提问于 2022-08-25 06:28:29
回答 1查看 178关注 0票数 0

经过相当一段时间的反对后,甲骨文现在在21c中删除了dbms_obfuscation_toolkit。以下功能的直接替代是什么?

  • dbms_obfuscation_toolkit.DESEncrypt
  • dbms_obfuscation_toolkit.DESDecrypt
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-25 11:05:24

您将使用DBMS_CRYPT.ENCRYPT函数或过程之一(参见文档)和encryption_type of DBMS_CRYPTO.ENCRYPT_DES,以及所需的任何分组密码套件和修饰符。

示例:

代码语言:javascript
复制
DECLARE
   input_string       VARCHAR2 (200) :=  'Secret Message';
   output_string      VARCHAR2 (200);
   encrypted_raw      RAW (2000);             -- stores encrypted binary text
   decrypted_raw      RAW (2000);             -- stores decrypted binary text
   num_key_bytes      NUMBER := 256/8;        -- key length 256 bits (32 bytes)
   key_bytes_raw      RAW (32);               -- stores 256-bit encryption key
   encryption_type    PLS_INTEGER :=          -- total encryption type

                                 DBMS_CRYPTO.ENCRYPT_DES
                                 + DBMS_CRYPTO.CHAIN_CBC
                                 + DBMS_CRYPTO.PAD_NONE;

   iv_raw             RAW (16);

BEGIN
   DBMS_OUTPUT.PUT_LINE ( 'Original string: ' || input_string);
   key_bytes_raw := DBMS_CRYPTO.RANDOMBYTES (num_key_bytes);
   iv_raw        := DBMS_CRYPTO.RANDOMBYTES (16);
   encrypted_raw := DBMS_CRYPTO.ENCRYPT
      (
         src => UTL_I18N.STRING_TO_RAW (input_string,  'AL32UTF8'),
         typ => encryption_type,
         key => key_bytes_raw,
         iv  => iv_raw
      );

    -- The encrypted value "encrypted_raw" can be used here

    decrypted_raw := DBMS_CRYPTO.DECRYPT
      (
         src => encrypted_raw,
         typ => encryption_type,
         key => key_bytes_raw,
         iv  => iv_raw
      );

   output_string := UTL_I18N.RAW_TO_CHAR (decrypted_raw, 'AL32UTF8');

   DBMS_OUTPUT.PUT_LINE ('Decrypted string: ' || output_string); 
END;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73482845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档