為什麼 AES_DECRYPT 在 MySQL 中傳回二進位字串而不是明文?

Susan Sarandon
發布: 2024-11-11 03:50:02
原創
365 人瀏覽過

Why does AES_DECRYPT return a binary string instead of plaintext in MySQL?

使用MySQL 函數進行AES 加密和解密

處理敏感資料時,加密對於保護資訊免遭未經授權的存取至關重要。 MySQL提供了各種加密函數,包括AES_ENCRYPT和AES_DECRYPT來保護資料。然而,一些用戶在使用這些函數加密後嘗試解密時遇到困難。

問題:

使用 AES_ENCRYPT 加密後使用 AES_DECRYPT 從表中查詢行時,結果可能會顯示為二進位字串,而不是預期的明文。

解決方案:

根據 MySQL 文檔,AES_DECRYPT 應該在解密後返回原始字串。但是,在某些情況下,它仍可能會傳回二進位字串。

以下程式碼示範了此問題的解決方法:

SELECT *,
       CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt
FROM   user
登入後複製

透過使用明確將解密值轉換為字元類型CAST(),可以確保它顯示為可讀的字串。在查詢中使用first_name_decrypt 欄位來檢索解密的明文,而不是原始的first_name 欄位。

以上是為什麼 AES_DECRYPT 在 MySQL 中傳回二進位字串而不是明文?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板