php - 密码是否应该给出不同的值?

时间:2015-08-10 12:28:11

标签: javascript php hash bcrypt

所以我有以下一行javascript代码:

$.ajax({"type":"POST", "url":"php/hashslingingslasher.php", "data":{"hashme":"lolmypassroot"}, success: function(resp){console.log(resp);}, error:function(resp){console.log(resp);}});

hashslingingslasher.php的内容如下:

$options = array('cost' => 11);
echo password_hash($_REQUEST['hashme'], PASSWORD_BCRYPT, $options);

(为简单起见,我取出了所有的isset()调用和错误检查。)

当我多次进行这个ajax调用时,它给了我多个答案。

$2y$11$vXvo6BzpQiRyzVAh5DlZPenXPojY8wKCQa1mmMArnkSzpsSO8V.xG
$2y$11$jh25GXcpia1kjIjOlE44Fu4HqtayOvKJ/YqXpeG3qsD1wI3SYIqre
$2y$11$O3iZyflCoRsBoo3kXELlK.HZI9NYsPTT2PT3KV5VBiyknIVZdIOiC

这是预期的吗?我的印象是,哈希必须是确定性的,以便可以证实;我知道在某些加密方案中,随机元素用于加密,但随机值也在解密时提供(否则无法解密)。

有人可以提供有关此处发生的事情的见解吗?

编辑:我看到我的问题被标记为重复。虽然另一个接受的答案是有帮助的,但它并没有真正解释随机盐的传递方式。显然,在第三个$之后,盐必须是散列的一部分 - 任何人都知道如何从中发现盐?

0 个答案:

没有答案