Raú*_*ràs 6 php security phpass
我一直在使用PHPass来密码我的密码很长一段时间.我承认仍然有一些我不完全理解(或忽略)正确散列密码的东西所以今天我正在审查我能找到的所有相关信息.
回顾PHPass文档,我已经踏入了这个:
除了实际散列之外,当新密码或密码被散列时,phpass透明地生成随机盐,并且它将散列类型,salt和密码拉伸迭代计数编码到它返回的"散列编码字符串"中.当phpass对存储的哈希验证密码或密码时,它同样透明地提取并使用哈希类型标识符,盐和"哈希编码字符串"中的迭代计数.因此,您不必费心自己进行腌制和拉伸 - phpass会为您处理这些问题.
我加粗了困扰我的句子.
我总是认为盐应该有些秘密,因为攻击者不应该知道它.因此,如果正确理解,PHPass会将相同哈希中使用的盐存储起来,以便在比较密码时能够使用它并检查是否有效.
我的问题是
盐的目的不是为了保密。目的是为每个哈希输入添加唯一的组件,因此相同的密码不会哈希为相同的哈希,从而使暴力破解过程更加困难且耗时,因为每个哈希都必须单独尝试。
是的,如果盐是秘密的,那么安全性会稍微高一些,但这在实践中很难实现,因为您的应用程序也需要盐,因此它需要存储在可以访问密码的地方。因此,在实践中,当攻击者获得密码哈希时,他通常也能够获得盐。