MySQL 中 AES_DECRYPT 加密,如何在瀚高数据库中使用
Posted 瀚高PG实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 中 AES_DECRYPT 加密,如何在瀚高数据库中使用相关的知识,希望对你有一定的参考价值。
瀚高数据库
目录
环境
症状
问题原因
解决方案
环境
系统平台:银河麒麟R系(CPU龙芯)4,银河麒麟U系(CPU飞腾)4
版本:4.5.2,6.0
症状
mysql替换为国产瀚高数据库时, AES_DECRYPT 加密在瀚高数据库中使用报错
问题原因
MySQL数据库中利用AES_ENCRYPT()与AES_DECRYPT()加解密,瀚高数据库中有区别。
解决方案
瀚高数据库提供了加密模块pgcrypto,来对数据进行加密&解密
使用方法如下:
1、登录数据库,打开该功能,执行SQL:
create extension pgcrypto;
2、对表中某字段数据进行加密:
例如:有表s4,字段为name(varchar),对name字段加密。
该表有四条数据:
highgo=# table s4;
name
------
1
2
我
s
(4 行记录)
3、加密:
encrypt(data bytea, key bytea, type text) returns bytea
data为要加密的数据,key为带有密钥key的data加密,type为指定的加密/解密数据的方法,type支持的值为 bf, aes, aes128, aes192, aes256
select encrypt(name::bytea,'aa','aes') from s4;
encrypt
------------------------------------
\\x6172d60ea8e724965539fd4e69066f2b
\\x3fee3e5d5b9c8e14769c8fa2f6ad5b11
\\xac1a63f002731b6a017ce5ba82fb65e8
\\xfc81af448c11cc4c5cb1ac59e52165e7
(4 行记录)
`
4、解密:
```cpp
decrypt(data bytea, key bytea, type text) returns bytea
select convert_from(decrypt('\\x6172d60ea8e724965539fd4e69066f2b','aa','aes'),'SQL_ASCII');
convert_from
--------------
1
(1 行记录)
select convert_from(decrypt('\\x3fee3e5d5b9c8e14769c8fa2f6ad5b11','aa','aes'),'SQL_ASCII');
convert_from
--------------
2
(1 行记录)
以上是关于MySQL 中 AES_DECRYPT 加密,如何在瀚高数据库中使用的主要内容,如果未能解决你的问题,请参考以下文章
不能 AES_DECRYPT (MySQL) 使用 openssl_encrypt (PHP) 加密的字符串