使用 MySQL 函数进行 AES 加密和解密
处理敏感数据时,加密对于保护信息免遭未经授权的访问至关重要。 MySQL提供了各种加密函数,包括AES_ENCRYPT和AES_DECRYPT来保护数据。然而,一些用户在使用这些函数加密后尝试解密时遇到困难。
问题:
在使用 AES_ENCRYPT 加密后使用 AES_DECRYPT 从表中查询行时,结果可能会显示为二进制字符串,而不是预期的明文。
解决方案:
根据 MySQL 文档,AES_DECRYPT 应该在解密后返回原始字符串。但是,在某些情况下,它仍可能返回二进制字符串。
以下代码演示了此问题的解决方法:
SELECT *, CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt FROM user
通过使用显式将解密值转换为字符类型CAST(),可以确保它显示为可读的字符串。在查询中使用first_name_decrypt 列来检索解密的明文,而不是原始的first_name 列。
以上是为什么 AES_DECRYPT 在 MySQL 中返回二进制字符串而不是明文?的详细内容。更多信息请关注PHP中文网其他相关文章!