Home>Article>Backend Development> What are the php password encryption methods?
php密码加密方法:1、使用password_hash(),语法“password_hash(密码,PASSWORD_BCRYPT)”;2、使用password_verify(),语法“password_verify(密码,hash)”。
本教程操作环境: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!