我目前正在使用node,并注意到bcrypt将salt放在哈希的初始部分
password
:
"$2a$04$kpj4oCA/b85xWAIL3n4l9uPMA2Ku4VR90oT3iE9IZVvREvmmJCZem"
salt
:
"$2a$04$kpj4oCA/b85xWAIL3n4l9u"
这样做是否安全。我的意思是哈希和盐析的目的是阻止开发人员在数据库中插入普通密码。因此,如果有人进入我的数据库,他们现在知道我的盐,然后它只是强制所有密码的问题,直到我得到其余的哈希。为什么需要腌制呢?我可以只存储哈希而不用salting
答案 0 :(得分:1)
盐通常保存为纯文本,随机盐背后的逻辑是每个哈希都是不同的,相同的密码+随机盐你得到一个更随机的哈希,而不是相同的哈希与相同的密码。对抗彩虹表反向散列等。
没有随机盐密码"测试"在使用相同的散列算法时,它总是生成相同的散列,因此不能使用普通的盐来以这种方式反转密码。
这只是我的简短解释,如果你想了解更多关于盐和散列的信息,我确定在某个地方有关于该主题的大量信息。