首頁 >資料庫 >mysql教程 >為什麼我的 MySQL AES 解密回傳空白結果?

為什麼我的 MySQL AES 解密回傳空白結果?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-13 06:07:02548瀏覽

Why Does My MySQL AES Decryption Return Blank Results?

排查 MySQL 中的 AES 解密問題

在 MySQL 中處理加密資料時,了解可用的加密和解密函數至關重要。本文解決了嘗試解密使用 AES 加密加密的資料時遇到空白結果的問題。

在 MySQL 中,AES_ENCRYPT 和 AES_DECRYPT 函數都會對二進位字串進行操作。預期的行為是 AES_DECRYPT 將解密的資料作為字串傳回。但在某些情況下,解密後的資料可能仍然是二進位格式,導致結果顯示為空。

為了解決這個問題,MySQL 手冊建議使用 CAST() 函數明確轉換解密後的二進位字串成一個字串。實作方法如下:

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

在此查詢中,解密的first_name 欄位將轉換為最大長度為50 個字元的字串。這可確保解密的資料顯示為可讀取的文字字串。

遵循此方法,您可以成功解密並查看表中的加密資料。請記住根據解密資料的預期長度根據需要調整 CAST() 函數中的字元長度。

以上是為什麼我的 MySQL AES 解密回傳空白結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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