背景介绍
为了兼容mysql数据库的功能,在LightDB23.4版本上支持hex/unhex/aes_encrypt/aes_decrypt函数。
函数原型如下:
- hex(data bytea) returns text
- unhex(data varchar) returns bytea
- aes_encrypt(data bytea, key bytea) returns bytea
- aes_encrypt(data varchar, key varchar) returns bytea
- aes_decrypt(data bytea, key bytea) returns bytea
- aes_decrypt(data varchar, key varchar) returns bytea
- aes_decrypt(data bytea, key varchar) returns bytea
使用示例
- hex函数,将bytea类型数据转成text类型
select hex('\x0123456789abcdef');
hex
------------------
0123456789abcdef
(1 row)
- unhex函数,将varchar类型数据转成bytea类型
select unhex('0123456789abcdef');
unhex
--------------------
\x0123456789abcdef
(1 row)
- aes_encrypt,使用aes加密算法和密钥加密数据。
select aes_encrypt('world', '123456');
aes_encrypt
------------------------------------
\x85400d3bbeeeb51259f497fcb4bee03e
(1 row)
- aes_decrypt,解密通过aes_encrypt加密的数据。
select aes_decrypt(aes_encrypt('world', '123456'), '123456');
aes_decrypt
--------------
\x776f726c64
(1 row)