我一直在阅读有关存储和检查用户密码的正确程序,并且对盐有点困惑。
我知道它们是为了防止使用彩虹表等工具,但对我来说,将盐与哈希一起存储的想法似乎是一个潜在的安全问题。我喜欢一个地方的数据太多。
我想由人们运行的想法是使用“幸运数字”从密码哈希的一部分创建盐。基本上,除了选择密码,用户还会选择一个“幸运数字”。然后,此数字将用作从散列通行证中检索盐的起始索引。
所以一个非常基本的例子是这样的。
Pass = "Password"
Lucky Number = "4"
Pass Hash = "00003gebdksjh2h4"
Salt Length = "5"
Resulting Salt = "3gebd"
我的想法是,由于不需要存储“幸运数字”,因此盐也将花费计算时间来计算,因此使任何攻击变得更加困难。Plus 意味着存储的数据略少。