【发布时间】:2009-07-13 16:03:03
【问题描述】:
假设用户注册了您的网站,您对他们选择的密码进行哈希处理,然后将该哈希用作盐,并使用该盐重新对他们的密码进行哈希处理。
例子:
String hash1 = MD5(password);
String endHash = MD5(hash1 + password);
然后将 endHash 存储在您的数据库中。如果我的数据库遭到破坏,这是否能有效抵御 Rainbow Table 攻击?还是我错过了一些容易破坏的东西?
【问题讨论】:
-
这应该是处理安全协议的第一条规则:不要试图变得聪明,你只会破坏它。使用随机盐。不是用户名。不是任何东西的哈希。只是随机数据。