![]() |
1
8
不,不是有“小小的额外困难”——潜在的更大的困难。 假设有20亿个常用密码。很容易散列所有这些并存储结果。如果你有 未加盐的 密码散列,您只需检查与给定散列匹配的常用密码。 现在把它和腌制的土豆泥比较一下…现在您有20亿个常用密码,但也有几十亿个可能的盐。计算 全部的 可能的salt/password组合需要很长的时间-希望是不可行的。 另外,这意味着即使两个人拥有相同的密码,他们也很可能拥有不同的散列值-因此一个用户在泄露密码时的疏忽不会危及另一个用户的安全。 见 Wikipedia entry (如果您还没有)了解更多信息。 |
![]() |
2
6
盐有两种帮助: 1)当两个(或更多)人使用相同的密码时,如果没有盐,您可以看到谁使用相同的密码(哈希值都是相同的)。所以在理论上,如果那个人知道其中一个密码,他就知道每个人的密码都有相同的哈希值。这是一个次要的原因。 2)主要原因是防止字典攻击或彩虹攻击。在这些攻击中,有人使用预先计算好的哈希数据库作为常用密码。通常这些数据库的大小都是gig。但是,在这一点上,只需根据预先计算的哈希列表查找您拥有的哈希(哈希密码),并查看关联的密码是什么,就非常容易了。 通过使用salt值(通常您希望它是一个随机数),散列值将与字典不匹配(它们用所有可能的salt值预先计算所有密码的可能性以指数形式更为困难)。因此,即使您的用户使用容易被攻击的密码,也要说“密码”,这在任何密码字典/彩虹表中都是很有保证的,通过预先挂起随机salt值,您可以保证哈希对攻击者毫无用处。同时,对于您来说,由于salt只是存储在明文中,所以您可以很容易地将其添加到明文中,以便比较用户输入的密码。 |
![]() |
3
3
salt没有附加到散列,而是附加到密码,然后进行散列。这是更安全的,因为黑客必须知道salt和实际的密码,这两个密码都应该受到严格的保护。D |
![]() |
TJCLK · 使用此代码可以找到6字节sha-1冲突需要多长时间? 7 年前 |
|
ebann · 在大文件上同时计算MD5和SHA1 7 年前 |
![]() |
osgx · bup(基于git的映像备份)如何计算存储对象的哈希值 8 年前 |
![]() |
gbtimmon · 为什么这些SHA1实现不同? 8 年前 |
![]() |
Indivara · 从VBA调用.NET加密 10 年前 |
![]() |
mibollma · 支持RSA加密的智能卡系统[已关闭] 10 年前 |
![]() |
lorigio · C#和C之间的SHA1不同++ 10 年前 |
![]() |
Thomas Matthews · 验证SHA-1算法(功能) 10 年前 |