鉴于我们正在为密码使用著名的散列函数,即SHA256、SHA512、BCrypt或,PBKDF2.我们的资讯保证中小型企业建议我们将输入资料截断为这些杂凑功能:
…若要防止散列函数将其拆分为多个散列,请执行以下操作。
我没有听说过散列函数会这样做,事实上,我曾经假设使用散列函数散列会产生一个固定长度的字符串--我做这个假设不正确吗?
发布于 2018-02-02 11:14:27
在旧的Windows版本中使用的臭名昭著的"LANMAN散列“有一个问题,它将密码分割成7个字节块,并分别计算每个字节的散列。这再加上缺乏盐,以及其他糟糕的设计决策,意味着"keyboard42“的密码和"KeyBoarMint”的密码存储着相同的第一个值,这使得它特别容易受到称为“彩虹表”的时空权衡的影响,在这种情况下,对手预先计算了大量数据,然后几乎不需要做多少工作就可以逆转密码哈希。
你提到的现代方案不仅证明了这种攻击,甚至在1970年代,一个设计精良的密码哈希也不容易受到彩虹桌的攻击。给你的建议很差。
发布于 2018-02-02 14:32:14
即使我们的密码哈希有一个固定的长度输出。因为密码的熵密度很低。延长密码,远远超过哈希的大小,仍然可以增加有价值的熵。
https://crypto.stackexchange.com/questions/55262
复制相似问题