背景:
您的 PHP 应用程序当前使用 Mcrypt 进行数据加密Blowfish 密码和 ECB 模式。但是,您面临迁移到 OpenSSL 进行加密的挑战。
主要区别:
解决方案:
要无缝迁移而无需大量重新编码,请按照以下步骤操作:
重新创建加密数据:之前手动用PKCS#7填充数据使用 Mcrypt 对其进行加密。下面提供了示例代码:
$key = "anotherpassword1"; $str = "does it work 12"; $enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $str."", MCRYPT_MODE_ECB);
使用 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中文网其他相关文章!