DBMS_CRYPTO
函数名 |
参数类型 |
结果类型 |
描述 |
encrypt函数1 |
null |
null |
主要对raw类型数据进行加密 |
encrypt函数2 |
null |
null |
主要对blob、clob类型数据进行加密 |
decrypt函数1 |
null |
null |
主要对raw类型数据进行解密 |
decrypt函数2 |
null |
null |
主要对blob类型数据进行解密 |
hash |
null |
null |
根据指定数据生成一个哈希值 |
mac |
null |
null |
根据指定数据生成一个mac哈希值,以提供键控消息保护 |
randombytes |
null |
null |
生成伪随机的密钥材料 |
randominteger |
null |
null |
生成伪随机整数 |
randomnumber |
null |
null |
生成随机的number类型数据 |
create extension pgcrypto;
encrypt函数1调用示例:
select dbms_crypto.encrypt('ABCABC'::raw, dbms_crypto.des_cbc_pkcs, '123456'::raw);
select dbms_crypto.encrypt('ABCABC'::raw, 8449, '123456'::raw) from dual;
encrypt函数2调用示例:
select dbms_crypto.encrypt('abc'::blob,'ABCABC'::blob, dbms_crypto.encrypt_des+dbms_crypto.chain_cbc+dbms_crypto.pad_pkcs, '123456'::raw);
select dbms_crypto.encrypt('abc'::blob,'ABCABC'::blob, dbms_crypto.encrypt_des+dbms_crypto.chain_cbc+dbms_crypto.pad_none, '123456'::raw, 'ABC'::raw);
select dbms_crypto.encrypt('abc'::blob,'ABCABC'::clob, dbms_crypto.encrypt_des+dbms_crypto.chain_cbc+dbms_crypto.pad_pkcs, '123456'::raw);
select dbms_crypto.encrypt('abc'::blob,'ABCABC'::clob, 8961, '123456'::raw) from dual;
decrypt函数1调用示例:
select dbms_crypto.decrypt('ABCABCabABCABCab'::raw, dbms_crypto.des_cbc_pkcs, '123456'::raw);
select dbms_crypto.decrypt('ABCABCabABCABCab'::raw, dbms_crypto.encrypt_des+dbms_crypto.chain_cbc+dbms_crypto.pad_pkcs, '123456'::raw);
decrypt函数2调用示例:
select dbms_crypto.decrypt('abc'::blob,'D552672EE9151C95'::blob,dbms_crypto.des_cbc_pkcs, '123456'::raw);
select dbms_crypto.decrypt('abc'::blob,'D552672EE9151C95'::blob, dbms_crypto.encrypt_des+dbms_crypto.chain_ecb+dbms_crypto.pad_pkcs, '123456'::raw);
select dbms_crypto.decrypt('abc'::clob,'D552672EE9151C95'::blob, 8451, '123456'::raw);
select dbms_crypto.decrypt('abc'::clob,'D552672EE9151C95'::blob, dbms_crypto.encrypt_3des+dbms_crypto.chain_ecb+dbms_crypto.pad_pkcs, '123456'::raw);
hash函数调用示例:
select dbms_crypto.hash(hextoraw(encode('中文测试'::bytea, 'hex')), dbms_crypto.hash_md5);
select dbms_crypto.hash(hextoraw(encode('中文测试'::bytea, 'hex'))::blob, dbms_crypto.hash_md5);
select dbms_crypto.hash('中文测试'::clob, dbms_crypto.hash_md5);
mac函数调用示例:
select dbms_crypto.mac(hextoraw(encode('中文测试'::bytea, 'hex')), dbms_crypto.hmac_md5, '123456ABC'::raw);
select dbms_crypto.mac(hextoraw(encode('中文测试'::bytea, 'hex'))::blob, dbms_crypto.hmac_md5, '123456ABC'::raw);
select dbms_crypto.mac('中文测试'::clob, dbms_crypto.hmac_md5, '123456ABC'::raw);
randombytes函数调用示例:
select dbms_crypto.randombytes(1);
randominteger函数调用示例:
select dbms_crypto.randominteger();
randomnumber函数的调用示例:
select dbms_crypto.randomnumber() from dual;