首页  >  文章  >  后端开发  >  如何在不进行重大代码更改的情况下从 Mcrypt 迁移到 OpenSSL?

如何在不进行重大代码更改的情况下从 Mcrypt 迁移到 OpenSSL?

Barbara Streisand
Barbara Streisand原创
2024-11-22 05:30:14366浏览

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