1

我使用的代码块如下:

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

当我使用这个命令时,我得到

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

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

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

4

1 回答 1

2

恐怕您将不得不显式解密每一列,而不是尝试解密 *. 如果您只使用 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';
于 2012-06-13T10:06:53.230 回答