准备在 PHP 7.2 中弃用 Mcrypt
随着 PHP 7.2 的出现,mcrypt 扩展预计将被删除。虽然 openssl 提供了替代方案,但从 mcrypt 到 openssl 的过渡可能会带来挑战,特别是在旨在维护 AES 256 CBC 加密并保留 IV 时。
弥合从 Mcrypt 到 Openssl 的差距
核心问题在于 mcrypt 使用的 Rijndael-256 与AES-256 由 openssl 处理。由于 openssl 不支持 Rijndael-256,因此无法直接转换。
为了解决这个问题,所有使用 Rijndael-256 加密的数据都必须使用 openssl 的 AES-256 重新加密。此过程需要仔细规划,以避免数据丢失或损坏。
解决潜在漏洞
除了技术差异之外,提供的 mcrypt 代码还演示了几个必须缓解的漏洞在新的实现中:
采用安全加密实践
虽然 openssl 提供自动 PKCS#5 填充,但建议使用强大的加密库,例如 defuse/php-encryption。该库解决了已识别的漏洞并提供了全面的加密解决方案。通过实施这些最佳实践,您可以有效地过渡到 openssl 并维护数据的安全性。
以上是如何在 PHP 7.2 及更高版本中安全地从 MCrypt 迁移到 OpenSSL?的详细内容。更多信息请关注PHP中文网其他相关文章!