2012-06-13 22 views
1

,我使用的代碼塊如下:AES解密全行的MySQL

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

當我使用這個命令,我得到

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

(用戶名,密碼,AuthorizationType)

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

回答

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';