首頁 >後端開發 >php教程 >如何在不進行重大程式碼變更的情況下從 Mcrypt 遷移到 OpenSSL?

如何在不進行重大程式碼變更的情況下從 Mcrypt 遷移到 OpenSSL?

Barbara Streisand
Barbara Streisand原創
2024-11-22 05:30:14383瀏覽

How to Migrate from Mcrypt to OpenSSL without Significant Code Changes?

從Mcrypt 遷移到OpenSSL,無需進行大量重新編碼

背景:

您的PHP 應用程式Mcrypt 進行資料加密Blowfish 密碼和ECB 模式。但是,您面臨遷移到 OpenSSL 進行加密的挑戰。

主要差異:

  • OpenSSL 使用 PKCS#7 填充,而 Mcrypt 使用 PKCS#5。
  • 與 ECB 模式不同,OpenSSL 不需要初始化向量 (IV) Mcrypt。

解決方案:

要無縫遷移而無需大量重新編碼,請按照以下步驟操作:

  1. 重新建立加密資料:之前手動用PKCS#7填充資料使用Mcrypt對其進行加密。下面提供了範例程式碼:

    $key = "anotherpassword1";
    $str = "does it work 12";
    $enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $str."", MCRYPT_MODE_ECB);
  2. 使用 OpenSSL 解密: 重新建立加密資料後,使用 OpenSSL使用正確的密碼解密,並模式:

    $key = "anotherpassword1";
    $enc = "0e93dce9a6a88e343fe5f90d1307684c";
    $dec = openssl_decrypt($enc, 'bf-ecb', $key, true);
    echo $dec;

注意:您提到Mcrypt(56)和OpenSSL(0)需要不同的IV長度。但是,ECB 模式不使用 IV。

按照以下步驟,您可以從 Mcrypt 遷移到 OpenSSL,無需進行大量程式碼修改,確保與現有加密資料的兼容性。

以上是如何在不進行重大程式碼變更的情況下從 Mcrypt 遷移到 OpenSSL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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