PHP 加密:Password Hashing API-php教程

资源魔 32 0
PHP 5.5 之后引入 Password hashing API 用于创立以及校验哈希明码,它属于内核自带,无需进行任何扩大装置以及设置装备摆设。它次要提供了四个函数以供应用:

● password_hash():创立明码的哈希;

● password_verify():验证明码能否以及哈希婚配;

● password_needs_rehash():反省给定的哈希能否婚配给定的选项;

● password_get_info():前往指定哈希的相干信息。

一、password_hash(string password, int algo [, array options])

应用足够强度的单向散列算法天生明码的哈希。此函数兼容 crypt(),即由 crypt() 天生的哈希值能够应用 Password hashing API 的相干函数进行校验。

● password:用户明码。

● algo:明码算法常量。取值包罗:

● PASSWORD_DEFAULT:应用 bcrypt 算法。终极天生的后果可能超越 60 个字符;

● PASSWORD_BCRYPT:应用 CRYPT_BLOWFISH 算法创立哈希。终极后果是 60 个字符的字符串,或正在失败时前往 FALSE。

● salt:手动提供哈希明码的盐值。省略此项时,函数会为每一个明码哈希主动天生随机的盐值。PHP 7.0 已烧毁该项;

● cost:代表算法应用的 cost。默许值是 10,可依据实际状况添加。

二、password_verify(string password, string hash)

● password:用户提供的明码。

● hash:由 password_hash() 创立的哈希散列值。 假如婚配则前往 TRUE,不然前往 FALSE。时序攻打对此函数没有起作用。

三、password_needs_rehash(string hash, integer algo [, array opitons])

● hash:由 password_hash() 天生的哈希;

● algo:明码算法常量;

● options:蕴含无关选项的联系关系数组。

四、password_get_info(string hash) 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 加密:Password Hashing API的具体内容,更多请存眷资源魔其它相干文章!

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

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