準備在 PHP 7.2 中刪除 Mcrypt
隨著 PHP 7.2 的臨近,Mcrypt 擴充的棄用迫在眉睫。雖然 Openssl 是一種可行的替代方案,但要實現這一轉變可能具有挑戰性,特別是對於那些不太熟悉密碼學的人來說。
需要克服的障礙之一涉及將依賴 Mcrypt 的 Rijndael-256 CBC 模式(具有 IV 保留)的程式碼轉換為Openssl 的等效項。目前,這種直接轉換是不可行的。原因在於 Rijndael-256 和 AES-256 之間的根本差異。
Mcrypt 的 Rijndael-256 實作在 256 位元區塊大小上運行,而 Openssl 的 AES-256 遵循 128 位元區塊大小。因此,這種差異排除了一種方法直接取代另一種方法的可能性。此限制需要重新加密資料以實現與 AES-256 的兼容性。
除了不相容問題之外,現有程式碼還提出了幾個額外的安全問題:
幸運的是,Openssl 原生支援 PKCS#5 填充。但是,強烈建議使用強大的加密庫,例如 defuse/php-encryption,它可以解決這些問題並提供更高層級的資料保護。
以上是如何將基於 Mcrypt 的 PHP 程式碼遷移到 PHP 7.2 及更高版本中的 Openssl?的詳細內容。更多資訊請關注PHP中文網其他相關文章!