我使用的代码块如下:
SELECT * FROM crypted_tbl WHERE Username=AES_ENCRYPT('aydu', 'usa2010');
当我使用此命令时,我得到
”`‡œ™uûx“¢Í®i
‘¨åµüÐzêlæZ1ØÝ
GN“bˆg(ž÷’8
(用户名,密码,授权类型)
如何使用MySQL命令解密整行?
答案 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';