VastbaseG100

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

Menu

MY_DECRYPT_AES128

功能描述

Vastbase在MySQL兼容模式下支持使用MY_DECRYPT_AES128解密函数:根据给出的密钥字符串返回指定密文字符串的解密结果。

解密使用的密钥字符串必须与加密时使用的密钥字符串一致才能正常解密。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时能够使用(即创建DB时DBCOMPATIBILITY='B'),在其他数据库兼容模式下不能使用该特性。

  • 使用此函数需要用户预先安装pgcrypto插件。

语法格式

MY_DECRYPT_AES128(crypt_str, key)

参数说明

  • crypt_str

    密文字符串,text类型或者bytea类型。

  • key

    用于解密的任意长度密钥字符串。支持中文字符。

    解密时使用的密钥字符串必须与加密时一致才能正常解密。

示例

1、创建并切换至兼容模式为MySQL的数据库db_mysql下。

CREATE DATABASE  db_mysql  DBCOMPATIBILITY=  'B';
\c  db_mysql

2、创建pgcrypto插件。

create extension pgcrypto;

3、使用中文字符作为原始数据以及密钥,并调用HEX函数得到加密结果的十六进制形式。

  • MY_ENCRYPT_AES128函数的加密结果是二进制格式的数据,存在不可显示字符,借助HEX函数将其转换成十六进制显示格式即可正常输出。

  • HEX函数用于得到给定数据的十六进制转换结果,UNHEX函数用于将一个十六进制编码的字符串解码。

select HEX(MY_ENCRYPT_AES128('测试中文','test'));

返回结果如下:

               hex
----------------------------------
 747b55c24be0e2ccb2111336685d8bc0
(1 row)

4、将上一步得到的密文数据使用UNHEX函数转换后的结果作为MY_DECRYPT_AES128解密函数的入参。

select MY_DECRYPT_AES128(UNHEX('747b55c24be0e2ccb2111336685d8bc0'),'test');

返回结果如下,得到加密前的原始数据:

 my_decrypt_aes128
-------------------
 测试中文
(1 row)

参考链接

MY_ENCRYPT_AES128