📜  如何使用PHP加密和解密密码?

📅  最后修改于: 2022-05-13 02:24:08.703000             🧑  作者: Mango

如何使用PHP加密和解密密码?

加密和解密密码的最佳方法是使用PHP的标准库,因为从头开始正确加密和解密密码的方法很复杂,并且涉及多种可能的安全漏洞。使用标准库可确保散列实现得到验证和信任。

注意:这使用了5.5.0 及更高版本中可用的PHP密码 API

密码加密:要从字符串生成哈希,我们使用 password_hash()函数。

句法:

string password_hash(string $password, 
          mixed $algo, [array $options])

password_hash()函数使用可用的散列算法之一创建字符串的新密码散列。它返回当前 60 个字符长的散列,但是,随着新的和更强大的算法将添加到PHP,散列的长度可能会增加。因此,建议为可用于在数据库中存储散列的列分配 255 个字符。



使用此函数时,当前支持以下算法:

  • PASSWORD_DEFAULT
  • PASSWORD_BCRYPT
  • 密码_ARGON2I
  • PASSWORD_ARGON2ID

可以传递给此函数的其他选项可用于在$options数组中设置加密成本、散列期间使用的盐等。

下面的例子展示了使用password_hash()方法的方法:

例子:

php


php


输出:

密码解密要解密密码哈希并检索原始字符串,我们使用password_verify()函数。

句法:

bool password_verify(string $password, string $hash)

password_verify()函数验证给定的哈希值是否与由password_hash()函数生成的给定密码匹配。如果密码和哈希匹配,则返回true ,否则返回false

PHP


输出:

Password Verified!

PHP是一种专门为 Web 开发设计的服务器端脚本语言。您可以按照此PHP教程和PHP示例从头开始学习PHP 。