PHP 加密 Password Hashing API基础知识点
PHP5.5之后引入PasswordhashingAPI用于创建和校验哈希密码,它属于内核自带,无需进行任何扩展安装和配置。它主要提供了四个函数以供使用:
●password_hash():创建密码的哈希;
●password_verify():验证密码是否和哈希匹配;
●password_needs_rehash():检查给定的哈希是否匹配给定的选项;
●password_get_info():返回指定哈希的相关信息。
1、password_hash(stringpassword,intalgo[,arrayoptions])
使用足够强度的单向散列算法生成密码的哈希。此函数兼容crypt(),即由crypt()生成的哈希值可以使用PasswordhashingAPI的相关函数进行校验。
●password:用户密码。
●algo:密码算法常量。取值包括:
●PASSWORD_DEFAULT:使用bcrypt算法。最终生成的结果可能超过60个字符;
●PASSWORD_BCRYPT:使用CRYPT_BLOWFISH算法创建哈希。最终结果是60个字符的字符串,或在失败时返回FALSE。
●salt:手动提供哈希密码的盐值。省略此项时,函数会为每个密码哈希自动生成随机的盐值。PHP7.0已废弃该项;
●cost:代表算法使用的cost。默认值是10,可根据实际情况增加。
2、password_verify(stringpassword,stringhash)
●password:用户提供的密码。
●hash:由password_hash()创建的哈希散列值。如果匹配则返回TRUE,否则返回FALSE。时序攻击对此函数不起作用。
3、password_needs_rehash(stringhash,integeralgo[,arrayopitons])
●hash:由password_hash()生成的哈希;
●algo:密码算法常量;
●options:包含有关选项的关联数组。
4、password_get_info(stringhash)hash:由password_hash()生成的哈希。返回一个包含三个元素的关联数组:
●algo:密码算法常量;
●algoName:算法名称;
●options:调用password_hash()时提供的选项。
示例
$str='chicken,run!'; $pwd1=password_hash($str,PASSWORD_BCRYPT); $pwd2=crypt($str); var_dump(password_verify('chicken,run!',$pwd1));//输出true var_dump(password_verify('chicken,ran!',$pwd1));//输出false var_dump(password_verify($str,$pwd2));//输出true var_dump(password_needs_rehash($pwd1,PASSWORD_BCRYPT,['cost'=>10]));//输出false,因为password_hash()在加密时,出来默认cost为10外,还会指定随机的盐值
知识点补充:
PHP加密解密函数分享
"; echo'密文:',$encrypt."
"; echo'译文:',$decrypt."
"; ?>
以上就是PHP加密PasswordHashingAPI基础知识点的详细内容,更多关于PHP加密:PasswordHashingAPI的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。