Skip to content

ENCRYPT

接口/方法功能

  • 加密二进制或字符串类型数据。
  • 加密Blob数据。

接口/方法声明

  • 加密二进制或字符串类型数据

    FUNCTION  Encrypt (src IN RAW,typ IN INTEGER, key IN RAW,iv IN RAW DEFAULT NULL) RETURN RAW;
    FUNCTION  Encrypt (src IN VARCHAR,typ IN INTEGER, key IN VARCHAR,iv IN VARCHAR DEFAULT NULL) RETURN RAW;
  • 加密Blob数据

    PROCEDURE Encrypt (dst IN OUT BLOB,src IN BLOB,typ IN INTEGER,key IN RAW,iv IN RAW DEFAULT NULL);
    PROCEDURE Encrypt (dst IN OUT BLOB,src IN CLOB ,typ IN INTEGER,key IN RAW,iv  IN RAW DEFAULT NULL);

参数说明

  • 加密二进制或字符串类型数据

    参数名称参数类型参数解释默认值
    srcRAW/VARCHAR要加密的资源
    typINTEGER加密类型/套件,由块加密算法、模式、填充方式组成
    keyRAW/VARCHAR用于加密解密的密码
    ivRAW/VARCHAR-NULL
  • 加密Blob数据

    参数名称参数类型参数解释默认值
    dstBLOB/CLOB-
    srcBLOB要加密的资源
    typINTEGER加密类型/套件,由块加密算法、模式、填充方式组成
    keyRAW用于加密解密的密码
    ivRAW-NULL

操作示例

  • 加密二进制或字符串类型数据

    DECLARE
    typ INTEGER := DBMS_CRYPTO.ENCRYPT_AES + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5;
    src VARCHAR := 'abcdefghijklmnopqrstuvwxyz';
    enc_bin RAW;
    key VARCHAR := '这是key';
    BEGIN
    enc_bin:=DBMS_CRYPTO.ENCRYPT(src,typ,key);
    SEND_MSG(enc_bin);
    END;
  • 加密Blob数据

    //暂未提供大对象加密
    DECLARE
    typ INTEGER := DBMS_CRYPTO.ENCRYPT_AES + DBMS_CRYPTO.CHAIN_CBC + DBMS_CRYPTO.PAD_PKCS5;
    b blob;
    enc_bin RAW;
    key raw;
    BEGIN
    select hextoraw('54') into key;
    for i in (select * from t2) loop
    DBMS_CRYPTO.ENCRYPT(b,i.c,key,null);
    SEND_MSG(utl_raw.CAST_TO_VARCHAR2(b));
    end loop;
    END;