加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

介绍PHP中password_hash的功能

发布时间:2022-07-29 13:49:01 所属栏目:PHP教程 来源:互联网
导读:password_hash 传统的用户名和密码都采用加盐的方式存储加密信息,盐值也需要存储。 自PHP5.5.0之后,新增加了密码散列算法函数(password_hash),password_hash() 使用足够强度的单向散列算法创建密码的散列(hash)。 password_hash() 兼容 crypt()。 所
     password_hash
 
    传统的用户名和密码都采用加盐的方式存储加密信息,盐值也需要存储。
 
    自PHP5.5.0之后,新增加了密码散列算法函数(password_hash),password_hash() 使用足够强度的单向散列算法创建密码的散列(hash)。 password_hash() 兼容 crypt()。 所以, crypt() 创建的密码散列也可用于 password_hash()。
 
    说明
 
    password_hash不需要再单独存储盐值,而且每次加密的值都不一样,我们只需要存储加密字符串,验证时用password_verify()方法即可得出结果!
 
 
    返回值:
 
    返回散列后的密码, 或者在失败时返回 FALSE。
 
    使用的算法、cost 和盐值作为散列的一部分返回。所以验证散列值的所有信息都已经包含在内。 这使 password_verify() 函数验证的时候,不需要额外储存盐值或者算法的信息。
 
    
 
 
 
    /**
 
     * 我们想要使用默认算法散列密码
 
     * 当前是 BCRYPT,并会产生 60 个字符的结果。
 
     *
 
     * 请注意,随时间推移,默认算法可能会有变化,
 
     * 所以需要储存的空间能够超过 60 字(255字不错)
 
     */
 
    
    password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
 
      
 
    输出类似结果:
 
    $2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a
 
    验证
    
 
    $inputValue = '123456'; //用户输入的密码
 
    if(password_verify( $inputValue, '数据库存储的密码')){
 
        //如果为真,则验证成功
 
 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读