0

我听说我们不应该依赖 Adler32,我想问为什么。

为什么我们不应该信任 Adler32 来散列?它是可逆的吗?还是我们可以轻松地看到真实的文字?

4

2 回答 2

1

一个人不会“解密”散列,而散列不会隐藏“真实文本”——加密,而不是散列,可以做到这一点。但是,如果您的意思是,Adler-32 可以用作加密哈希吗?那绝对不行。对加密散列的要求是,对于可预见的硬件和数学来说,用给定的散列构造一条消息是极其困难的,实际上是不可能的。对于 Adler-32 来说很容易做到这一点,实际上对于任何32 位散列都很容易。32 位根本不够用。

于 2016-10-31T14:06:12.593 回答
0

绝对不能使用 Adler32 进行密码散列。

对于短输入,可以从 8 位 CRC 获得大量信息。通常,对于加密散列,输入数据中的一位更改将有 50% 的输出位发生更改。

它不是为了避免冲突而设计的,它是一个 CRC。许多哈希函数是为其他不存在冲突问题的目的而设计的,例如字典查找或“酒瓶俱乐部”的储物箱,它只使用会员编号的最后几位数字来实现瓶子在储物箱中的均匀分布.

密码安全:

仅使用散列函数是不够的,仅添加盐对提高安全性无济于事。相反,iIterate over an HMAC with a random salt for about 100ms duration and save the salt with the hash. 使用 PBKDF2、password_hash、Bcrypt 等函数和类似函数。关键是让攻击者花费大量时间通过蛮力寻找密码。

带盐的 SHA-512 不足的一个原因是笔记本电脑(我的)每秒可以执行 750,000 次,这将应用于按使用频率排序的 10,000,000 个密码列表然后有特殊程序可以模糊这些密码。除非是钓鱼,否则攻击者可能会对 90% 的密码破解感到满意。因此,通过将计算机时间从 <2us 延长到 >100ms,攻击者将花费 50,000 倍的时间,他可能会转移到下一个站点。

保护您的用户很重要,请使用安全的密码方法。

原因如下:攻击者访问了您的站点,获取了 MD5 密码,对常用密码列表使用暴力破解,并获得了用户的用户名和密码。现在攻击者在另一个站点上使用它来访问更敏感的数据,因为大多数用户重复使用密码。您刚刚帮助破坏了用户。注意:一个不错的黑客率可能是 10 亿/秒。攻击者会喜欢您的网站,而您甚至不会知道它已被成功攻击。

于 2016-10-28T19:25:13.100 回答