Home>Article>Backend Development> What are the php password encryption methods?

What are the php password encryption methods?

青灯夜游
青灯夜游 Original
2021-07-06 18:27:09 6049browse

php密码加密方法:1、使用password_hash(),语法“password_hash(密码,PASSWORD_BCRYPT)”;2、使用password_verify(),语法“password_verify(密码,hash)”。

What are the php password encryption methods?

本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑

php推荐密码加密的方法

1、password_hash() 函数

password_hash() 函数用于创建密码的散列(hash)

password_hash (password,algo[,options])

password_hash() 使用足够强度的单向散列算法创建密码的散列(hash)。 password_hash() 兼容 crypt()。 所以, crypt() 创建的密码散列也可用于 password_hash()。

当前支持的算法:

  • PASSWORD_DEFAULT - 使用 bcrypt 算法 (PHP 5.5.0 默认)。 注意,该常量会随着 PHP 加入更新更高强度的算法而改变。 所以,使用此常量生成结果的长度将在未来有变化。 因此,数据库里储存结果的列可超过60个字符(最好是255个字符)。

  • PASSWORD_BCRYPT - 使用 CRYPT_BLOWFISH 算法创建散列。 这会产生兼容使用 "$2y$" 的 crypt()。 结果将会是 60 个字符的字符串, 或者在失败时返回 FALSE。

  • PASSWORD_ARGON2I - 使用 Argon2 散列算法创建散列。

注意,该常量会随着 PHP 加入更新更高强度的算法而改变。 所以,使用此常量生成结果的长度将在未来有变化。 因此,数据库里储存结果的列可

超过60个字符(最好是255个字符)。

PASSWORD_BCRYPT - 使用 CRYPT_BLOWFISH 算法创建散列。 这会产生兼容使用 "$2y$" 的 crypt()。

结果将会是 60 个字符的字符串, 或者在失败时返回 FALSE。

PASSWORD_ARGON2I - 使用 Argon2 散列算法创建散列。

2、password_verify()函数

password_verify()函数用于验证密码是否和散列值匹配。

password_verify ( password , hash )

参数说明:

  • password:用户的密码。

  • hash:一个由password_hash()创建的散列值。

返回值

如果密码和散列值匹配则返回TRUE,否则返回FALSE。

案例:

$a = password_hash("112233",PASSWORD_BCRYPT); dump($a);//$2y$10$KgllhWiKePNN2z3k1zr3eea3giNkS57rGii0/r/u8lZE8K96nhJt6 $b = password_verify("112233",$a); dump($b);//true

推荐学习:《PHP视频教程

The above is the detailed content of What are the php password encryption methods?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn