Mcrypt 是一個遺留加密庫,由於安全漏洞和 OpenSSL 作為行業標準的出現而已經退役。雖然從 Mcrypt 切換到 OpenSSL 可能看起來令人畏懼,但可以透過了解關鍵差異並採取適當的策略來簡化它。
Blowfish,您正在使用的密碼,需要用於加密的資料填充。 OpenSSL 使用 PKCS#7 填充,而 Mcrypt 使用 PKCS#5。 PKCS#7 要求最小填充長度為 1,而 PKCS#5 接受 0。這種差異會影響從每個庫獲得的加密結果。
在 ECB 模式下,您可以使用在使用時,不需要初始化向量(IV)。然而,在其他加密模式中卻並非如此。在 ECB 模式下使用 OpenSSL 時,請確保將 IV 長度設為 0。
要使用 OpenSSL 解密使用 Mcrypt 加密的數據,需要在加密之前使用 PKCS#7 手動填充。這確保了兩個庫之間的兼容性。
提供的程式碼示範了關鍵差異和正確的填充技術:
此程式碼示範了成功的加密和解密同時使用Mcrypt 和OpenSSL ,應用PKCS#7 填充以實現相容性。
以上是如何將 Mcrypt 加密轉換為 OpenSSL 加密:逐步指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!