`

oracle9的加密解密包

 
阅读更多
双向加密算法
dbms_obfuscation_toolkit.desencrypt
dbms_obfuscation_toolkit.desdecrypt
dbms_obfuscation_toolkit.DES3Encrypt
dbms_obfuscation_toolkit.DES3Decrypt
单向加密算法
dbms_obfuscation_toolkit.md5
具体用法参见以下函数
--MD5加密
create or replace function
encrypt_md5(p_text varchar2) return varchar2 is
begin
--添加RawToHex(UTL_RAW.CAST_TO_RAW())为得是加密后的输出数据规范些
--input_string必须要有,否则没有办法区分到底是调用那个md5
return RawToHex(UTL_RAW.CAST_TO_RAW(dbms_obfuscation_toolkit.MD5(input_string=>p_text)));
end;
--DES加密
create or replace function
encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
begin
return UTL_RAW.CAST_TO_RAW(dbms_obfuscation_toolkit.DESENCRYPT(input_string => p_text,
key_string => p_key));
end;
--DES解密
create or replace function decrypt_data(p_text varchar2,p_key varchar2) return varchar2 is
v_text varchar2(4000);
begin
dbms_obfuscation_toolkit.DESDECRYPT(
input_string => UTL_RAW.CAST_TO_varchar2(p_text),
key_string => p_key,
decrypted_string=> v_text);
return v_text;
end;
附录oracle9.2文档自带的DES3加密解密实例:
DECLARE
   input_string        VARCHAR2(16) := 'tigertigertigert';
   raw_input           RAW(128) := UTL_RAW.CAST_TO_RAW(input_string);
   key_string          VARCHAR2(16)  := 'scottscottscotts';
   raw_key             RAW(128) := UTL_RAW.CAST_TO_RAW(key_string);
encrypted_raw               RAW(2048);
   encrypted_string            VARCHAR2(2048);
decrypted_raw               RAW(2048);
   decrypted_string            VARCHAR2(2048);
   error_in_input_buffer_length EXCEPTION;
   PRAGMA EXCEPTION_INIT(error_in_input_buffer_length, -28232);
   INPUT_BUFFER_LENGTH_ERR_MSG VARCHAR2(100) :=
    '*** DES INPUT BUFFER NOT A MULTIPLE OF 8 BYTES - IGNORING EXCEPTION ***';
   double_encrypt_not_permitted EXCEPTION;
   PRAGMA EXCEPTION_INIT(double_encrypt_not_permitted, -28233);
   DOUBLE_ENCRYPTION_ERR_MSG VARCHAR2(100) :=
    '*** CANNOT DOUBLE ENCRYPT DATA - IGNORING EXCEPTION ***';
-- 1. Begin testing raw data encryption and decryption
   BEGIN
   dbms_output.put_line('> ========= BEGIN TEST RAW DATA =========');
   dbms_output.put_line('> Raw input                        : ' ||
                 UTL_RAW.CAST_TO_VARCHAR2(raw_input));
   BEGIN
      dbms_obfuscation_toolkit.DES3Encrypt(input => raw_input,
               key => raw_key, encrypted_data => encrypted_raw );
      dbms_output.put_line('> encrypted hex value              : ' ||
               rawtohex(encrypted_raw));
      dbms_obfuscation_toolkit.DES3Decrypt(input => encrypted_raw,
               key => raw_key, decrypted_data => decrypted_raw);
      dbms_output.put_line('> Decrypted raw output             : ' ||
                    UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw));
      dbms_output.put_line('>  ');     
      if UTL_RAW.CAST_TO_VARCHAR2(raw_input) =
                    UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw) THEN
         dbms_output.put_line('> Raw DES3 Encyption and Decryption successful');
      END if;
   EXCEPTION
      WHEN error_in_input_buffer_length THEN
             dbms_output.put_line('> ' || INPUT_BUFFER_LENGTH_ERR_MSG);
   END;
   dbms_output.put_line('>  ');
END;
-- 2. Begin testing string data encryption and decryption
   dbms_output.put_line('> ========= BEGIN TEST STRING DATA =========');
   BEGIN
      dbms_output.put_line('> input string                     : '
                           || input_string);
      dbms_obfuscation_toolkit.DES3Encrypt(
               input_string => input_string,
               key_string => key_string,
               encrypted_string => encrypted_string );
      dbms_output.put_line('> encrypted hex value              : ' ||
                   rawtohex(UTL_RAW.CAST_TO_RAW(encrypted_string)));
      dbms_obfuscation_toolkit.DES3Decrypt(
               input_string => encrypted_string,
               key_string => key_string,
               decrypted_string => decrypted_string );
      dbms_output.put_line('> decrypted string output          : ' ||
                 decrypted_string);
      if input_string = decrypted_string THEN
         dbms_output.put_line('> String DES3 Encyption and Decryption
successful');
      END if;
   EXCEPTION
      WHEN error_in_input_buffer_length THEN
             dbms_output.put_line(' ' || INPUT_BUFFER_LENGTH_ERR_MSG);
   END;
   dbms_output.put_line('>  ');
END;
不错的冬冬.共享一下!

转自:http://biancheng.dnbcw.info/oracle/300081.html
分享到:
评论

相关推荐

    Oracle自定义加密解密函数:数据安全合规·数据脱敏·加密存储高效解决方案

    4、详尽注释文档: 提供了完整的函数代码及详细的注释说明,便于用户快速理解与应用,同时降低了维护成本,简化了加密解密流程,提升开发效率。 5、灵活性:提供解密(DECRYPT_DES)和加密(ENCRYPT_DES)两个函数,...

    ORACLE数据加密解密处理的设计及实现 (1).pdf

    ORACLE数据加密解密处理的设计及实现 oracle数据库加密解密处理是关系型数据库安全的一个重要方面。随着企业信息化建设的推进,信息安全变得越来越重要。该文档对ORACLE数据库加密解密处理的设计及实现进行了详细...

    ORACLE 内置package解密工具(unwrap )

    oracle db内部的package全部是加密的,需要解密使用oracle wrap加密过的程序包,而unwrap解密工具可以拿到明文的package源代码。 解密的理论依据都来源于 "The oracle hacker's handbook" by David Litchfield 这...

    oracle数据库解密工具

    标题“oracle数据库解密工具”暗示了我们讨论的主题,即一种能帮助用户解析和理解Oracle数据库中加密或编译后的存储过程的软件工具。这类工具通常能够将二进制形式的PL/SQL代码还原成人类可读的文本格式,以便于分析...

    ORACLE数据加密解密处理的设计及实现.pdf

    "ORACLE数据加密解密处理的设计及实现.pdf" 本文档介绍了ORACLE数据库中数据加密解密处理的设计及实现,旨在解决企业信息化建设中信息安全问题。通过Powerbuilder数据窗口对表中所有解密数据进行编辑,编辑完成后...

    oracle存储过程unwrap解密工具.zip

    Oracle存储过程unwrap解密工具主要用于处理Oracle数据库中的加密存储过程。在Oracle数据库系统中,为了保护敏感代码或数据,开发人员有时会选择对存储过程进行加密。然而,当需要查看、调试或恢复这些加密的存储过程...

    Oracle实现MD5加密

    在IT领域,尤其是在数据库安全...总结而言,Oracle提供了多种方法来实现MD5加密,从简单的内置函数到自定义包的创建,每种方法都有其适用场景。理解这些方法及其工作原理,对于开发安全可靠的数据库应用程序至关重要。

    Oracle加密解密

    1、oracle 数据表或者部分列加密 1.1 oracle 对称加密与非对称加密算法及密钥保管 1.2 部分字段加密 2、oracle 数据表或者行、列访问控制 3、2者结合解决项目实际过程中的问题 主要技术要点: 1、oracle 源代码...

    oracle加密解密

    通过对 Oracle 10g 和 9i 中加密解密函数的分析可以看出,不同版本的 Oracle 提供了不同的工具包来支持数据的加密与解密操作。在选择合适的加密算法时,应根据实际需求以及 Oracle 版本的不同来进行选择。同时,还...

    oracle存储过程加密破解

    oracle存储过程加密破解 0

    Oracle定义DES加密解密及MD5加密函数示例

    Oracle数据库提供了多种加密功能,包括DES加密和MD5加密,用于数据的安全存储和保护敏感信息。以下是对这些加密函数的详细说明: 1. **DES(Data Encryption Standard)加密**: DES是一种对称加密算法,它使用56...

    Oracle9i用户加密算法

    本文将详细介绍Oracle9i中的用户加密算法,特别是DES(Data Encryption Standard)加密解密方法。 #### 二、Oracle9i用户加密算法背景 Oracle9i是Oracle公司发布的一款关系型数据库管理系统,它提供了丰富的功能和...

    oracle wrapped 解密工具

    Oracle Wrapped 解密工具是一款专为Oracle数据库用户设计的实用程序,旨在帮助他们处理加密的PL/SQL代码。在Oracle数据库中,"wrapped"代码是指经过编译和加密的存储过程、函数或包,通常用于保护敏感的商业逻辑或源...

    【数据安全】Oracle 透明数据加密(TDE) 完整操作手册

    - 数据加密时,Oracle数据库首先从密钥库中获取主密钥,然后解密加密密钥,再使用加密密钥加密用户数据,最后将加密后的数据存储到数据库中。 3. **实施示例**: - TDE适用于各种操作系统环境,如描述中提到的...

    Oracle数据加密

    在实施Oracle数据加密时,企业需要考虑性能影响,因为加密和解密操作会消耗计算资源。不过,Oracle的TDE通常对性能的影响较小,因为它在I/O层进行加密,而不是在SQL处理层。 总结来说,Oracle数据加密是一套强大的...

    oracle fyunwrap (oracle对象解密工具)

    Oracle FYunwrap 是一款专为Oracle数据库设计的对象解密工具,主要功能是针对使用`wrap`命令加密的PL/SQL代码进行解密。在Oracle数据库中,`wrap`命令被用来压缩和加密源代码,以保护敏感的数据库逻辑不被轻易查看或...

    oracle 反加密反编译器

    在开发或维护Oracle数据库应用时,有时我们需要对已加密的代码或数据进行反编译或解密,以便理解其工作原理或修复问题。"Oracle 反加密反编译器"就是这样一个工具,它提供了方便快捷的方式来处理这些需求。 首先,...

    oracle数据加密

    Oracle10g TDE技术使用加密钱包(Wallet)来管理加密密钥,通过内置包dbms_crypto进行加密和解密操作。 Oracle的TDE技术为数据库管理员提供了方便,他们可以通过TDE直接加密整个数据文件或特定的数据表,这样即使...

    java加密解密程序

    在Java中实现加密解密,通常会使用`java.security`包下的类,如`Cipher`,它可以实现各种复杂的加密算法,如AES、RSA等。然而,凯撒加密法的实现相对简单,可以直接用字符串操作来完成。程序可能包括两个主要部分:...

    oracle 加密技术

    Oracle加密技术是保护数据库中敏感数据安全的重要手段,它利用一系列的加密算法将明文数据转换为密文,确保数据即便在遭受未授权访问时也难以被解读。加密技术包括不同的算法分类,每种算法有其特定的用途和安全性。...

Global site tag (gtag.js) - Google Analytics