首頁 >資料庫 >mysql教程 >為什麼 AES_DECRYPT 在 MySQL 中傳回加密資料?

為什麼 AES_DECRYPT 在 MySQL 中傳回加密資料?

Barbara Streisand
Barbara Streisand原創
2024-11-10 13:46:03675瀏覽

Why is AES_DECRYPT Returning Encrypted Data in MySQL?

MySQL 中AES_ENCRYPT 後無法解密加密數據

問題陳述:

加密後在MySQL 表中使用AES_ENCRYPT 的數據,嘗試使用AES_DECRYPT 解密資料會導致無法查看解密值。

解決方案:

根據 MySQL 手冊,AES_DECRYPT 旨在傳回原始字串解密。但是,使用者觀察到解密的值仍然以二進位字串形式傳回。要解決此問題,使用者應嘗試使用 CAST 函數將解密的字串轉換為字串。

例如,以下查詢會將解密的first_name 欄位轉換為 50 個字元的字串:

SELECT *, 
       CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt 
FROM   user

然後使用者可以使用first_name_decrypt欄位以可讀格式檢視解密的資料。

以上是為什麼 AES_DECRYPT 在 MySQL 中傳回加密資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn