使用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中文網其他相關文章!