MySQL怎样解密加密数据 加密数据查询与解密方案

上周我在解密加密数据时遇到了问题。
2 02 3 年 1 0 月 2 6 日,在公司服务器上。
特别是,解密 AES 加密字段需要两天时间。

我们先来说说如何解密。
当时发现数据是用AES_ENCRYPT加密的。
密钥隐藏在 config.ini 文件中。
我将密钥读入 SQL 并使用 AES_DECRYPT 函数对其进行解密。
我将此操作编写为存储过程。
代码是:
sql 创建过程decrypt_data() 开始 选择 AES_DECRYPT(加密列, 'secret_key') 作为解密列 从您的餐桌上; 完成;
我在解密时遇到错误。
字符集不匹配,结果是乱码。
最终通过将数据库的字符集改为utf8 mb4 解决了问题。
更改后的命令是:
sql 更改数据库own_db字符集utf8 mb4 ;
第二次我朋友搞的是批量解密。
他逐行解密,卡了两个小时。
后来我教他用临时表进行批处理,1 0秒就搞定了。

对于加密方案,我们最常用的是AES。
MySQL企业版的TDE非常好用,但是公司不买。
我自己写了一个自定义的加密函数,并将其放在存储过程中。

为了防止暴力破解,我们要求密码长度至少为1 2 个字符,同时包含大小写数字和符号。
还设立了Fail2 ban来限制登录次数。
这些措施效果很好。

算了,你自己想办法吧。

MySQL中加密函数学习--MySql语法

AES_ENCRYPT 使用官方 AES 算法加密。
参数是一个字符串和一个键。
返回加密的二进制字符串。

AES_DECRYPT 使用 AES 算法进行解码。
参数是加密的字符串和密钥。
返回原始字符串。

DES_ENCRYPT 使用 Triple-DES 算法进行加密。
参数是一个字符串和一个键。
返回一个二进制字符串。

DES_DECRYPT 使用DES算法进行解密。
参数是加密的字符串和密钥。
返回原始字符串。

ENCODE 使用密码加密。
参数是字符串和密码。
返回一个二进制字符串。

DECODE 使用密码解密。
参数是加密的字符串和密码。
返回原始字符串。

ENCRYPT 使用 Unixcrypt() 进行加密。
参数是一个字符串和一个盐值。
返回加密的字符串。

MD5 计算MD5 值。
参数是字符串。
返回 3 2 位十六进制字符串。

SHA1 计算 SHA1 值。
参数是字符串。
返回 4 0 位十六进制字符串。

OLD_PASSWORD 使用旧版本加密。
参数是字符串。
返回加密的字符串。

PASSWORD 使用您的 MySQL 密码进行加密。
参数是字符串。
返回加密的字符串。

不要随意使用单向加密。