我必须承认在与网络应用程序相关的大多数高科技安全问题上基本上无知,但有一件事我至少认为我可以问,因为这是一个直接的问题(希望)一个具体的答案。
访问此网站:http://www.15seconds.com/issue/000217.htm
它显示了他们将盐值存储在表格中的一点点,我理解使用盐背后的原理和数学,但我想知道:
答案 0 :(得分:40)
盐的观点是独一无二的。盐旨在防止攻击成本分担,即攻击者试图攻击两个哈希密码,其攻击成本低于攻击成本的两倍。
确保唯一性的一个解决方案是在足够宽的空间中生成随机盐。因此,为两个不同的密码实例获取两倍相同的盐是不可能的,以至于在实践中不会发生。
用户名不非常独特:
盐熵并不重要,除非它确保随机生成设置的唯一性。
答案 1 :(得分:28)
因为用户名的熵低于随机盐的熵,所以它们会将你的哈希值扩散到不到适当的盐值。
不是说那页上的例子非常壮观。我总是只生成一个GUID并使用它。
我怀疑现实生活中的安全问题一直存在于噪音中,即使是非常少量的每用户盐也会对安全性产生很大影响,随着盐变得越来越复杂,改进非常小。 / p>
答案 2 :(得分:1)
怎么样:
Salt = CryptoHash( CryptoHash(SubmittedEmailOrUsername) . CryptoHash(SubmittedPasswd) ) ?
那似乎是
虽然仍然具有良好的熵(基于散列而不是明文),并且
提供与加密哈希一样长的盐,例如128-512位?
如果系统允许两个用户拥有用户名和密码(虽然不会发生电子邮件地址),但有一个问题是,但这个方案还有其他问题吗?