`
njlovey
  • 浏览: 9255 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Oracle中加密用法

阅读更多
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加密,并通过具体示例代码进行说明。 ### Oracle实现MD5加密的方法 #### 1. 使用DBMS_OBFUSCATION_TOOLKIT.MD5函数 Oracle提供了一个内置包`DBMS_OBFUSCATION_TOOLKIT`,其中...

    oracle 加密技术

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

    ORACLE数据库加密程序

    Oracle数据库加密程序是一种用于保护数据库中敏感信息的工具,它允许用户在存储和处理数据时增加一层安全性。本文将深入探讨Oracle数据库加密的概念、技术以及如何利用程序进行数据加密。 Oracle数据库是全球广泛...

    oracle存储过程加密

    加密完成后,需要使用SQL\*Plus或其他Oracle客户端工具将加密后的存储过程安装到数据库中。具体步骤如下: 1. 使用SQL\*Plus登录到Oracle数据库。 2. 使用`@`符号加载加密后的存储过程文件,例如`@encrypted_a....

    Oracle环境下的IDEA加密方法

    Oracle环境下使用IDEA加密方法是Java开发者在处理敏感数据时常用的一种安全技术。...通过理解这些代码,可以更好地掌握在Oracle环境中使用IDEA加密的方法,并将其应用到实际项目中,保护数据安全。

    Oracle数据库加密技术分析.pdf

    在本文中,我们将对Oracle数据库加密技术进行分析和研究,并结合实例说明如何利用Oracle系统软件包实现数据库数据的加密和解密。 首先, letsreviewthe importance of database security.随着网络技术的快速发展和...

    Oracle 存储过程 实现加密

    在众多保护数据安全的方法中,加密技术扮演着不可或缺的角色。Oracle数据库作为业界领先的数据库管理系统之一,提供了丰富的功能来确保数据的安全性,其中包括网络加密和存储数据加密。本文将详细介绍如何利用Oracle...

    Oracle9i用户加密算法

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

    如何加密Oracle中的存储过程

    - **兼容性问题**:不同的Oracle版本可能需要使用不同的加密工具或方法。 #### 总结 本文详细介绍了如何使用Oracle提供的工具对存储过程进行加密,包括设置必要的环境变量、创建存储过程、使用WRAP工具进行加密...

    通过 Oracle Advanced Security 实现 Oracle Database 12c 中的加密和编辑

    与其他方法相比, Oracle Advanced Security 具有许多优势,包括高级的加密算法、灵活的安全策略和优化的性能特性等。 Oracle Advanced Security 是一种功能强大且灵活的安全解决方案,可以满足不同的应用场景和安全...

    oracle加密解密

    在不同的 Oracle 版本中(如 Oracle 9i 和 10g),加密解密的方法存在一定的差异。 #### 二、Oracle 10g 加密解密实现 在 Oracle 10g 中,主要通过 `DBMS_CRYPTO` 包来实现数据的加密和解密操作。该包提供了多种...

    Oracle数据库加密技术[收集].pdf

    - Oracle 9i及更低版本使用DBMS-OBFUSCATION_TOOLKIT (DOTK)作为唯一的加密方法。 - Oracle 10g引入了更强大的内置软件包DBMS-CRYPTO,增强了加密功能和算法选择。 2. **加密算法**: - DOTK支持DES和3DES加密...

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

    在Oracle中,可以使用`DBMS_OBFUSCATION_TOOLKIT`包中的`DESEncrypt`和`DESDecrypt`过程来实现。在提供的代码示例中,`encrypt_des`函数接收两个参数:要加密的文本(`p_text`)和密钥(`p_key`)。首先,文本被转换...

    Oracle数据传输加密.pdf

    Oracle 环境下可以使用 Oracle 提供的加密模块,也可以使用第三方的加密模块。 第三,需要配置网络环境。网络环境的配置对数据传输加密的安全性有很大的影响。在配置网络环境时,需要考虑到网络的安全性、性能和可...

    oracle 存储过程的加密

    Oracle 提供了两种方法来加密存储过程:使用 `wrap` 工具和 `dbms_ddl` 包。 1. **wrap 工具** `wrap` 是一个操作系统级别的命令,用于加密 PL/SQL 源代码。其基本语法如下: ```bash wrap iname=input_file ...

    cx_Oracle使用手册

    cx_Oracle模块还包含一些实用工具和扩展方法,例如cx_Oracle.Binary()用于创建二进制字符串值对象,cx_Oracle.clientversion()用于返回所使用的客户端库版本信息。请注意,cx_Oracle.clientversion()是一个扩展方法...

    Oracle 存储过程加密方法

    Oracle 存储过程加密方法 Oracle 存储过程加密方法是指将 Oracle 存储过程的源代码加密,以保护存储过程的 intellectual property 权益。这种方法可以防止未经授权的访问和修改存储过程的源代码。 在 Oracle 8i R2...

    oracle下加密存储过程的方法

    本文将详细介绍两种主要的加密方法:使用`wrap`命令行工具以及使用Oracle 10g提供的`DBMS_DDL`包。 #### 二、使用`wrap`命令行工具加密存储过程 `wrap`是一个命令行工具,它可以用来加密存储过程的源代码。这适用...

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

    例如,不是所有的加密方法都能被成功解密,尤其是使用了第三方加密方案或者Oracle自身的高级加密选项。此外,解密过程可能会破坏原存储过程的元数据,例如注释、版本控制信息等。 总的来说,Oracle存储过程unwrap...

Global site tag (gtag.js) - Google Analytics