美文网首页
PHP 用户密码加密函数password_hash

PHP 用户密码加密函数password_hash

作者: 下班再说 | 来源:发表于2020-02-24 19:10 被阅读0次

传统的用户名和密码都采用加盐的方式存储加密信息,盐值也需要存储。

自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() 函数验证的时候,不需要额外储存盐值或者算法的信息。

 加密:

<?php

* 我们想要使用默认算法散列密码

* 当前是 BCRYPT,并会产生 60 个字符的结果。

*

* 请注意,随时间推移,默认算法可能会有变化,

* 所以需要储存的空间能够超过 60 字(255字不错)

*/echopassword_hash("rasmuslerdorf", PASSWORD_DEFAULT);

?>

输出类似结果:

$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a

验证:

<?php

$inputValue = '123456'; //用户输入的密码

var_dump(password_verify( $inputValue, '存储的加密字符串'));

?>

输出:True或False

相关文章

  • php 加密与哈希

    password_hash 摘自 Modern PHP 这本书 我们应该知道计算机用户密码的哈希值,而不能加密用户...

  • PHP 用户密码加密函数password_hash

    传统的用户名和密码都采用加盐的方式存储加密信息,盐值也需要存储。 自PHP5.5.0之后,新增加了密码散列算法函数...

  • PHP密码加密

    php在5.5版本中新增了password_hash、password_verify两个密码散列函数。 通过pas...

  • php密码加密(密码散列)

    php在5.5版本中新增了password_hash、password_verify两个密码散列函数 使用方法: ...

  • thinkphp 后台登陆密码加密传入密钥

    后台登陆密码加密验证设置: 相关函数: /*** 对用户的密码进行加密* @param $password* @p...

  • 详解PHP处理密码的几种方式

    在 PHP中,经常会对用户身份进行认证。本文意在讨论对密码的处理,也就是对密码的加密处理。 MD5 相信很多PHP...

  • day09-用户管理-笔记

    Day10-用户管理 导读 今日内容1.为用户添加密码为新用户添加密码为用户变更密码密码怎么才算复杂小结2.用户的...

  • 用node重现hustoj项目里的加密验证过程

    先看下hustoj源码里用到的用户密码加密函数和验证函数 满满的黑历史,可以看出最早这个系统居然是明文存密码的,或...

  • day9-用户和组(2)

    密码 1. 为新用户添加密码(只有root才能执行) 交互式添加密码 非交互式添加密码 通过脚本,批量添加用户 2...

  • 加密函数,加密手段。

    密码散列函数: 密码散列函数(英语:Cryptographic hash function),又译为加密散列函数、...

网友评论

      本文标题:PHP 用户密码加密函数password_hash

      本文链接:https://www.haomeiwen.com/subject/kqviqhtx.html