如何使用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
输出:
Generated hash: $2y$10$7rLSvRVyTQORapkDOqmkhetjF6H9lJHngr4hJMSM2lHObJbW5EQh6
密码解密:要解密密码哈希并检索原始字符串,我们使用password_verify()函数。
句法:
bool password_verify(string $password, string $hash)
password_verify()函数验证给定的哈希值是否与由password_hash()函数生成的给定密码匹配。如果密码和哈希匹配,则返回true ,否则返回false 。
PHP
输出:
Password Verified!
PHP是一种专门为 Web 开发设计的服务器端脚本语言。您可以按照此PHP教程和PHP示例从头开始学习PHP 。