我一直在研究处理用户登录密码的选项,我对如何使用CRYPT_BLOWFISH有一些疑问。我读到了如何实现它,但我想在开始玩它之前更好地理解它。
所以我打算做这样的事情:
function genBlowfishSalt()
{
//return random string for Salt
}
$hash = crypt($password, '$2a$12$'. genBlowFishSalt());
我的问题如下:
1)什么是'$ 2a $ 12 $'?
2)我知道在这种情况下我必须为每个用户存储盐,我想在没有自己的哈希的情况下存储它是可以接受的吗?盐是否附加到散列值?
3)登录后,如何运行哈希值的比较?
4)我还读到有一个概念需要为每个用户存储多个迭代,这与密码的散列有什么关系?
谢谢!
答案 0 :(得分:2)
1)这是散列的盐,你需要让盐更随机(为每个用户提供不同的盐以获得最大程度的保护)
2)是的,您可以将盐存储在一个字段中,将盐渍哈希存储在另一个字段中。
3)您将执行以下步骤
4)我不确定你的意思,请详细说明!