AES 在 MySQL 中解密整行

本文关键字:解密 MySQL AES | 更新日期: 2023-09-27 18:37:04

我使用的代码块如下:

SELECT * FROM crypted_tbl WHERE Username=AES_ENCRYPT('aydu', 'usa2010');

当我使用此命令时,我得到

”`‡œ™uûx“¢Í®i
‘¨åµüÐzêlæZ1­ØÝ
GN“bˆg(ž÷’8

(用户名、密码、授权类型)

如何使用 MySQL 命令解密整行?

AES 在 MySQL 中解密整行

怕您将不得不显式解密每一列,而不是尝试解密*。如果你只使用MySQL,你必须做:

SELECT AES_DECRYPT(column1, 'seed'), AES_DECRYPT(column2, 'seed'), etc.
WHERE Username=AES_ENCRYPT('aydu', 'usa2010');

如果要在 c# 或其他平台中生成语句,则可以查询表结构并动态生成 SELECT 语句,这样就不必将每个列名硬编码到 SELECT 中。只需注意在每次查询之前查询表结构对性能的影响。

SELECT * FROM `information_schema`.`tables`
WHERE table_name = 'crypted_tbl';