首頁 >後端開發 >php教程 >用於密碼加密和解密的已棄用 mcrypt 擴充的安全替代方案是什麼?

用於密碼加密和解密的已棄用 mcrypt 擴充的安全替代方案是什麼?

Patricia Arquette
Patricia Arquette原創
2024-12-11 12:40:18225瀏覽

What are the Secure Alternatives to the Deprecated mcrypt Extension for Password Encryption and Decryption?

已棄用的mcrypt 密碼加密擴展的替代方案

先前用於密碼加密的mcrypt 擴展已棄用並將被刪除完全使用PHP 7.2。這引起了人們對尋找安全密碼加密的適當替代方案的擔憂。

建議方法:密碼雜湊

作為最佳實踐,強烈建議對密碼進行雜湊處理,而不是對它們進行加密。雜湊將密碼轉換為不可逆的值,使攻擊者即使獲得對您的資料庫或檔案的存取權限,也無法恢復原始密碼。

替代加密方法

但是,如果您需要對密碼進行加密並需要解密它們的能力,則以下選項是推薦:

  • Libsodium:提供安全加密和解密的PHP 擴充。
  • defuse/php-encryption:直接PHP 程式碼提供安全加密和解密的函式庫
  • OpenSSL:一個廣泛使用的加密函式庫,如果您的伺服器上尚未安裝,可以使用PHP 進行編譯。

程式碼範例

要使用其中一種替代方案,您可以遵循與原始 mcrypt類似的結構程式碼:

// Generate a secure random initialization vector
$iv = random_bytes(16);

// Encrypt the password using AES-256 in CBC mode
// Note: Replace key with a securely generated encryption key
$encrypted = openssl_encrypt($string, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

// Store the encrypted password and initialization vector for later decryption

解密

可以使用相同的函式庫和金鑰執行解密:

// Decrypt the encrypted password using AES-256 in CBC mode
$decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

以上是用於密碼加密和解密的已棄用 mcrypt 擴充的安全替代方案是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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