password_get_info

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_get_info返回关于给定哈希的信息

说明

password_get_info(string $hash): array

当传入一个由 password_hash() 支持的算法创建的有效哈希时,此函数将返回一个关于该哈希的信息数组。

参数

hash

password_hash() 创建的哈希。

返回值

返回一个包含三个元素的关联数组

添加注释

用户贡献注释 2 个注释

cbungholio at gmail dot com
7 年前
如果您想使用此方法来确定是否有一种方法可以评估给定字符串是否不是 password_hash() 值...

<?php

// 我们的密码.. 傻瓜会放在行李上的那种:
$password_plaintext = "12345";

// 对其进行哈希运算,毛球!
$password_hash = password_hash( $password_plaintext, PASSWORD_DEFAULT, [ 'cost' => 11 ] );

// 我们得到了什么?
print_r( password_get_info( $password_hash ) );

/* 返回:
Array (
[algo] => 1
[algoName] => bcrypt // 您的服务器默认值。
[options] => Array ( [cost] => 11 )
)
*/

// 如果它没有被哈希化,会怎么样?...
print_r( password_get_info( $password_plaintext ) );

/* 返回:
Array (
[algo] => 0
[algoName] => unknown
[options] => Array ( )
)
*/
?>

... 看起来我们每个人都需要亲自决定是否可以安全地与最终返回的数组进行比较。
lincoln dot du dot j at gmail dot com
7 年前
<?php

$a
= password_hash("rasmuslerdorf", PASSWORD_DEFAULT);

var_dump(password_get_info($a));
// 每次刷新都会改变
var_dump($a);

?>

// 输出类似

array(3) {
["algo"]=>
int(1)
["algoName"]=>
string(6) "bcrypt"
["options"]=>
array(1) {
["cost"]=>
int(10)
}
}
string(60) "$2y$10$wKEZs6W//QDoOeTKSCXx7.Y9Q7duFEtJpFFuJn1G5GhyWTTit/tL2"
To Top