hash(value1 & value2 & salt)
hash(hash(value1 & value2) & salt)
hash(hash(value1 & value2) & hash(salt))
hash(hash(value1 & salt) & hash(value2 & salt))
hash(hash(value1 & salt1) & hash(value2 & salt2))
hash(value1 & salt1 &value2 & salt2)
hash(value1 & salt1) and hash(value2 & salt2) '2 separate hashes for each input
在需要2个'密码'来访问特定功能的应用程序中(无论出于何种原因),盐是大型随机字符串。获取最终哈希值的最佳方法是什么? (不一定是上述之一)
外部/最终哈希算法与内部哈希算法的区别是否更好?
附带问题:主要是为了让短暂的,蹩脚的用户pw更加安全免受蛮力攻击?所以,如果pw很大(比如图像文件的ByteArray),盐会添加任何真正的目的吗?感谢。
答案 0 :(得分:2)
假设&
表示连接,最安全的是:
hash(value1 & delim & value2 & delim & salt)
...其中delim
是一个分隔符,不能出现在任何其他字符串中。无关的值1,值2和盐出现在哪个。
分隔符可防止别名,例如(value1, value2) = ('fail', 'stone')
与(value1, value2) = ('fails', 'tone')
。