根据研究,我的印象是,在对具有相同功能的字符串进行哈希处理时,它将始终返回相同的哈希值。我正在运行一个程序,并在php中使用password_hash()函数进行哈希处理,但是结果是不断得到不同的哈希值,因此,当我比较它们时,它将无法正常工作。
这是我要处理的示例。
PIN哈希:1212
初始哈希是第1行,其他3个是以下尝试:
$2y$10$5CAoU8snW79.8WpCS3T0Y.6OT4YkSYIlS2LrII8DweMzjTV5JGh2Cnone
$2y$10$SZgvvB7WG.gXB/AUbWeIOO8HnBit6F7fG.My/Pcyi4D0zXgb3/n3G
$2y$10$9b.WTA3r4ZYMHdtGN28.Je1qJ4R3n.1Mac1hD3kl.NleiCPmuZRianone
$2y$10$VEuLdnKUYftcJFtbY2KqJOJLQ4B/spuhRk6zywyTzjko7y4aZBGWunone
我正在使用的函数看起来像这样,并已在3个不同的地方使用,但我认为这不会影响结果。
$pin = password_hash($_POST['pin'],PASSWORD_DEFAULT);
password_hash()
不仅会散列密码,还会对其加盐。盐存储在字符串中。如果在散列上使用password_verify()
,它们将全部与输入一起签出。