VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

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;