首页 >后端开发 >php教程 >用于密码加密和解密的已弃用 mcrypt 扩展的安全替代方案是什么?

用于密码加密和解密的已弃用 mcrypt 扩展的安全替代方案是什么?

Patricia Arquette
Patricia Arquette原创
2024-12-11 12:40:18225浏览

What are the Secure Alternatives to the Deprecated mcrypt Extension for Password Encryption and Decryption?

已弃用的 mcrypt 密码加密扩展的替代方案

之前用于密码加密的 mcrypt 扩展已弃用并将被删除完全使用 PHP 7.2。这引起了人们对寻找安全密码加密的适当替代方案的担忧。

推荐方法:密码哈希

作为最佳实践,强烈建议对密码进行哈希处理,而不是对它们进行加密。哈希将密码转换为不可逆的值,使攻击者即使获得对您的数据库或文件的访问权限,也无法恢复原始密码。

替代加密方法

但是,如果您需要对密码进行加密并需要解密它们的能力,则以下选项是推荐:

  • Libsodium:提供安全加密和解密的 PHP 扩展。
  • defuse/php-encryption:直接 PHP 代码提供安全加密和解密的库
  • OpenSSL:一个广泛使用的加密库,如果您的服务器上尚未安装,可以使用 PHP 进行编译。

代码示例

要使用其中一种替代方案,您可以遵循与原始 mcrypt 类似的结构代码:

// Generate a secure random initialization vector
$iv = random_bytes(16);

// Encrypt the password using AES-256 in CBC mode
// Note: Replace key with a securely generated encryption key
$encrypted = openssl_encrypt($string, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

// Store the encrypted password and initialization vector for later decryption

解密

可以使用相同的库和密钥执行解密:

// Decrypt the encrypted password using AES-256 in CBC mode
$decrypted = openssl_decrypt($encrypted, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv);

以上是用于密码加密和解密的已弃用 mcrypt 扩展的安全替代方案是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn