AES在MySQL中解密完整行

时间:2012-06-13 09:49:46

标签: c# mysql encryption aes

我使用的代码块如下:

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

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

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

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

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

1 个答案:

答案 0 :(得分: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';