Oracle里有一个包:dbms_obfuscation_toolkit,包中有DES、DES3和MD5的加密算法,其具体代码如下:
CREATE OR REPLACE PACKAGE SYS.dbms_obfuscation_toolkit AS
-- Note that the following pragma applies to both functions
-- and procedures (see doc bug 3103959).
pragma restrict_references (default, RNDS, WNDS, RNPS, WNPS);
------------------------------- TYPES ------------------------------------
-- Types used to make it easier for the user to reserve the correct
-- amount of memory for a checksum.
SUBTYPE varchar2_checksum IS VARCHAR2(16);
SUBTYPE raw_checksum IS RAW(16);
----------------------------- CONSTANTS -----------------------------------
-- Triple DES modes
TwoKeyMode INTEGER := 0;
ThreeKeyMode INTEGER := 1;
----------------------------- EXCEPTIONS ----------------------------------
-- Invalid mode specified for Triple DES.
InvalidTripleDESMode EXCEPTION;
PRAGMA EXCEPTION_INIT(InvalidTripleDESMode, -28236);
---------------------- FUNCTIONS AND PROCEDURES ---------------------------
---------------------------- KEY GENERATION ------------------------------
-- The following routines generate encryption keys. Each takes a random
-- value which it uses in the generation of the key. This value must be
-- at least 80 characters long.
-- There are two versions of each procedure and function: one for raw data
-- and the other for strings.
---------------------------------------------------------------------------
PROCEDURE DESGetKey(seed IN RAW,
key OUT RAW);
pragma restrict_references (DESGetKey, RNDS, WNDS, WNPS);
FUNCTION DESGetKey(seed IN RAW) RETURN RAW;
pragma restrict_references (DESGetKey, RNDS, WNDS, WNPS);
PROCEDURE DESGetKey(seed_string IN VARCHAR2,
key OUT VARCHAR2);
pragma restrict_references (DESGetKey, RNDS, WNDS, WNPS);
FUNCTION DESGetKey(seed_string IN VARCHAR2) RETURN VARCHAR2;
pragma restrict_references (DESGetKey, RNDS, WNDS, WNPS);
-- For Triple DES, the mode is specified so that the key has the proper
-- length is returned.
PROCEDURE DES3GetKey(which IN PLS_INTEGER DEFAULT TwoKeyMode,
seed IN RAW,
key OUT RAW);
pragma restrict_references (DES3GetKey, RNDS, WNDS, WNPS);
FUNCTION DES3GetKey(which IN PLS_INTEGER DEFAULT TwoKeyMode,
seed IN RAW)
RETURN RAW;
pragma restrict_references (DES3GetKey, RNDS, WNDS, WNPS);
PROCEDURE DES3GetKey(which IN PLS_INTEGER DEFAULT TwoKeyMode,
seed_string IN VARCHAR2,
key OUT VARCHAR2);
pragma restrict_references (DES3GetKey, RNDS, WNDS, WNPS);
FUNCTION DES3GetKey(which IN PLS_INTEGER DEFAULT TwoKeyMode,
seed_string IN VARCHAR2)
RETURN VARCHAR2;
pragma restrict_references (DES3GetKey, RNDS, WNDS, WNPS);
---------------------------- DATA ENCRYPTION ------------------------------
-- The following routines encrypt and decrypt data.
-- There are two versions of each procedure and function: one for raw data
-- and the other for strings.
---------------------------------------------------------------------------
-- DES
PROCEDURE DESEncrypt(input IN RAW,
key IN RAW,
encrypted_data OUT RAW);
FUNCTION DESEncrypt(input IN RAW,
key IN RAW)
RETURN RAW;
PROCEDURE DESEncrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
encrypted_string OUT VARCHAR2);
FUNCTION DESEncrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2)
RETURN VARCHAR2;
PROCEDURE DESDecrypt(input IN RAW,
key IN RAW,
decrypted_data OUT RAW);
FUNCTION DESDecrypt(input IN RAW,
key IN RAW)
RETURN RAW;
PROCEDURE DESDecrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
decrypted_string OUT VARCHAR2);
FUNCTION DESDecrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2)
RETURN VARCHAR2;
-- Triple DES
PROCEDURE DES3Encrypt(input IN RAW,
key IN RAW,
encrypted_data OUT RAW,
which IN PLS_INTEGER
DEFAULT TwoKeyMode,
iv IN RAW DEFAULT NULL);
pragma restrict_references (DES3Encrypt, RNDS, WNDS, WNPS);
FUNCTION DES3Encrypt(input IN RAW,
key IN RAW,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv IN RAW DEFAULT NULL)
RETURN RAW;
pragma restrict_references (DES3Encrypt, RNDS, WNDS, WNPS);
PROCEDURE DES3Encrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
encrypted_string OUT VARCHAR2,
which IN PLS_INTEGER
DEFAULT TwoKeyMode,
iv_string IN VARCHAR2 DEFAULT NULL);
pragma restrict_references (DES3Encrypt, RNDS, WNDS, WNPS);
FUNCTION DES3Encrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv_string IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
pragma restrict_references (DES3Encrypt, RNDS, WNDS, WNPS);
PROCEDURE DES3Decrypt(input IN RAW,
key IN RAW,
decrypted_data OUT RAW,
which IN PLS_INTEGER
DEFAULT TwoKeyMode,
iv IN RAW DEFAULT NULL);
pragma restrict_references (DES3Decrypt, RNDS, WNDS, WNPS);
FUNCTION DES3Decrypt(input IN RAW,
key IN RAW,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv IN RAW DEFAULT NULL)
RETURN RAW;
pragma restrict_references (DES3Decrypt, RNDS, WNDS, WNPS);
PROCEDURE DES3Decrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
decrypted_string OUT VARCHAR2,
which IN PLS_INTEGER
DEFAULT TwoKeyMode,
iv_string IN VARCHAR2 DEFAULT NULL);
pragma restrict_references (DES3Decrypt, RNDS, WNDS, WNPS);
FUNCTION DES3Decrypt(input_string IN VARCHAR2,
key_string IN VARCHAR2,
which IN PLS_INTEGER DEFAULT TwoKeyMode,
iv_string IN VARCHAR2 DEFAULT NULL)
RETURN VARCHAR2;
pragma restrict_references (DES3Decrypt, RNDS, WNDS, WNPS);
-------------------------------- MD5 --------------------------------------
-- The following routines generate MD5 hashes of data.
-- There are two versions: one for raw data and the other for strings.
---------------------------------------------------------------------------
PROCEDURE MD5(input IN RAW,
checksum OUT raw_checksum);
FUNCTION MD5(input IN RAW)
RETURN raw_checksum;
PROCEDURE MD5(input_string IN VARCHAR2,
checksum_string OUT varchar2_checksum);
FUNCTION MD5(input_string IN VARCHAR2)
RETURN varchar2_checksum;
END dbms_obfuscation_toolkit;
分享到:
相关推荐
本文将深入探讨如何在Oracle中实现MD5加密,并通过具体示例代码进行说明。 ### Oracle实现MD5加密的方法 #### 1. 使用DBMS_OBFUSCATION_TOOLKIT.MD5函数 Oracle提供了一个内置包`DBMS_OBFUSCATION_TOOLKIT`,其中...
Oracle加密技术是保护数据库中敏感数据安全的重要手段,它利用一系列的加密算法将明文数据转换为密文,确保数据即便在遭受未授权访问时也难以被解读。加密技术包括不同的算法分类,每种算法有其特定的用途和安全性。...
Oracle数据库加密程序是一种用于保护数据库中敏感信息的工具,它允许用户在存储和处理数据时增加一层安全性。本文将深入探讨Oracle数据库加密的概念、技术以及如何利用程序进行数据加密。 Oracle数据库是全球广泛...
加密完成后,需要使用SQL\*Plus或其他Oracle客户端工具将加密后的存储过程安装到数据库中。具体步骤如下: 1. 使用SQL\*Plus登录到Oracle数据库。 2. 使用`@`符号加载加密后的存储过程文件,例如`@encrypted_a....
Oracle环境下使用IDEA加密方法是Java开发者在处理敏感数据时常用的一种安全技术。...通过理解这些代码,可以更好地掌握在Oracle环境中使用IDEA加密的方法,并将其应用到实际项目中,保护数据安全。
在本文中,我们将对Oracle数据库加密技术进行分析和研究,并结合实例说明如何利用Oracle系统软件包实现数据库数据的加密和解密。 首先, letsreviewthe importance of database security.随着网络技术的快速发展和...
在众多保护数据安全的方法中,加密技术扮演着不可或缺的角色。Oracle数据库作为业界领先的数据库管理系统之一,提供了丰富的功能来确保数据的安全性,其中包括网络加密和存储数据加密。本文将详细介绍如何利用Oracle...
本文将详细介绍Oracle9i中的用户加密算法,特别是DES(Data Encryption Standard)加密解密方法。 #### 二、Oracle9i用户加密算法背景 Oracle9i是Oracle公司发布的一款关系型数据库管理系统,它提供了丰富的功能和...
- **兼容性问题**:不同的Oracle版本可能需要使用不同的加密工具或方法。 #### 总结 本文详细介绍了如何使用Oracle提供的工具对存储过程进行加密,包括设置必要的环境变量、创建存储过程、使用WRAP工具进行加密...
与其他方法相比, Oracle Advanced Security 具有许多优势,包括高级的加密算法、灵活的安全策略和优化的性能特性等。 Oracle Advanced Security 是一种功能强大且灵活的安全解决方案,可以满足不同的应用场景和安全...
在不同的 Oracle 版本中(如 Oracle 9i 和 10g),加密解密的方法存在一定的差异。 #### 二、Oracle 10g 加密解密实现 在 Oracle 10g 中,主要通过 `DBMS_CRYPTO` 包来实现数据的加密和解密操作。该包提供了多种...
- Oracle 9i及更低版本使用DBMS-OBFUSCATION_TOOLKIT (DOTK)作为唯一的加密方法。 - Oracle 10g引入了更强大的内置软件包DBMS-CRYPTO,增强了加密功能和算法选择。 2. **加密算法**: - DOTK支持DES和3DES加密...
在Oracle中,可以使用`DBMS_OBFUSCATION_TOOLKIT`包中的`DESEncrypt`和`DESDecrypt`过程来实现。在提供的代码示例中,`encrypt_des`函数接收两个参数:要加密的文本(`p_text`)和密钥(`p_key`)。首先,文本被转换...
Oracle 环境下可以使用 Oracle 提供的加密模块,也可以使用第三方的加密模块。 第三,需要配置网络环境。网络环境的配置对数据传输加密的安全性有很大的影响。在配置网络环境时,需要考虑到网络的安全性、性能和可...
Oracle 提供了两种方法来加密存储过程:使用 `wrap` 工具和 `dbms_ddl` 包。 1. **wrap 工具** `wrap` 是一个操作系统级别的命令,用于加密 PL/SQL 源代码。其基本语法如下: ```bash wrap iname=input_file ...
cx_Oracle模块还包含一些实用工具和扩展方法,例如cx_Oracle.Binary()用于创建二进制字符串值对象,cx_Oracle.clientversion()用于返回所使用的客户端库版本信息。请注意,cx_Oracle.clientversion()是一个扩展方法...
Oracle 存储过程加密方法 Oracle 存储过程加密方法是指将 Oracle 存储过程的源代码加密,以保护存储过程的 intellectual property 权益。这种方法可以防止未经授权的访问和修改存储过程的源代码。 在 Oracle 8i R2...
本文将详细介绍两种主要的加密方法:使用`wrap`命令行工具以及使用Oracle 10g提供的`DBMS_DDL`包。 #### 二、使用`wrap`命令行工具加密存储过程 `wrap`是一个命令行工具,它可以用来加密存储过程的源代码。这适用...
例如,不是所有的加密方法都能被成功解密,尤其是使用了第三方加密方案或者Oracle自身的高级加密选项。此外,解密过程可能会破坏原存储过程的元数据,例如注释、版本控制信息等。 总的来说,Oracle存储过程unwrap...