详解PHP中password_hash的功能-php教程

资源魔 31 0

password_hash

传统的用户名以及明码都采纳加盐的形式存储加密信息,盐值也需求存储。

自PHP5.5.0之后,新添加了明码散列算法函数(password_hash),password_hash() 应用足够强度的单向散列算法创立明码的散列(hash)。 password_hash() 兼容 crypt()。 以是, crypt() 创立的明码散列也可用于 password_hash()。

阐明

password_hash没有需求再独自存储盐值,并且每一次加密的值都纷歧样,咱们只要要存储加密字符串,验证时用password_verify()办法便可患上出后果!

以后支持的算法:

PASSWORD_DEFAULT - 应用 bcrypt 算法 (PHP 5.5.0 默许)。 留意,该常量会跟着 PHP 退出更新更高强度的算法而扭转。 以是,应用此常量天生后果的长度将正在将来有变动。 因而,数据库里贮存后果的列可超越60个字符(最佳是255个字符)。

PASSWORD_BCRYPT - 应用 CRYPT_BLOWFISH 算法创立散列。 这会孕育发生兼容应用 "$2y$" 的 crypt()。 后果将会是 60 个字符的字符串, 或许正在失败时前往 FALSE。

PASSWORD_ARGON2I - 应用 Argon2 散列算法创立散列。

前往值:

前往散列后的明码, 或许正在失败时前往 FALSE。

应用的算法、cost 以及盐值作为散列的一局部前往。以是验证散列值的一切信息都曾经蕴含正在内。 这使 password_verify() 函数验证的时分,没有需求额定贮存盐值或许算法的信息。

/**
 * 咱们想要应用默许算法散列明码
 * 以后是 BCRYPT,并会孕育发生 60 个字符的后果。
 *
 * 请留意,随工夫推移,默许算法可能会有变动,
 * 以是需求贮存的空间可以超越 60 字(255字没有错)
 */
 
 
password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
 
输入相似后果:
$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a

验证

$inputValue = '123456'; //用户输出的明码
if(password_verify( $inputValue, '数据库存储的明码')){
    //假如为真,则验证胜利
}
 
输入:
True  或 False

保举教程:《PHP视频教程》

以上就是详解PHP中password_hash的性能的具体内容,更多请存眷资源魔其它相干文章!

标签: php开发教程 php开发资料 php开发自学 password_hash

抱歉,评论功能暂时关闭!