Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 为什么对散列密码进行加密会提高安全性?_Security_Salt - Fatal编程技术网

Security 为什么对散列密码进行加密会提高安全性?

Security 为什么对散列密码进行加密会提高安全性?,security,salt,Security,Salt,我一直在做一些关于在数据库中安全存储密码的研究。一般建议你用盐。如中的一个答案所述,这会更改哈希值,使密码更难泄露 作为验证机制的一部分,用户输入的密码将与salt组合,并根据需要进行散列。考虑到盐对用户是透明的,使用盐如何提供额外的好处 在我看来,无论是否使用散列,相同的密码都会成功地对您进行身份验证,因为使其不同的管道将发生在幕后。这就是为什么到目前为止,我读过的文章中没有一篇澄清了这一点。盐密码降低了一个用户已经将盐密码的哈希包含在其中的可能性。考虑一个场景,在这个场景中,您接受用户的密码

我一直在做一些关于在数据库中安全存储密码的研究。一般建议你用盐。如中的一个答案所述,这会更改哈希值,使密码更难泄露

作为验证机制的一部分,用户输入的密码将与salt组合,并根据需要进行散列。考虑到盐对用户是透明的,使用盐如何提供额外的好处


在我看来,无论是否使用散列,相同的密码都会成功地对您进行身份验证,因为使其不同的管道将发生在幕后。这就是为什么到目前为止,我读过的文章中没有一篇澄清了这一点。

盐密码降低了一个用户已经将盐密码的哈希包含在其中的可能性。

考虑一个场景,在这个场景中,您接受用户的密码,然后通过网络将其发送或以明文形式存储在数据库中

如果用户输入密码,请输入6-8个字符。黑客可能会对所有可能的6-8个字符长度的字符串进行预生成哈希,并且他可能会通过将密码与您的哈希进行比较来推断密码。(将您的哈希与所有预生成哈希进行匹配,如果发生冲突,他可以得到一组可能的候选密码)

但是如果你在他的纯文本密码中加上一个盐,比如说30个字符,然后把它散列出来。任何黑客都很难预先生成该范围的所有可能组合。这就是我们使用盐的主要原因


出于安全目的,您不能限制每个用户输入30个字符长的密码。如果任何用户选择4个字符长度的密码,只需添加30个字符的salt并使其更安全

例如,您应该阅读。注意,salt的目的是阻止有权访问哈希本身的恶意用户。假设合适的salt(大而随机)和哈希算法不易受到暴力(SHA-1太快)的影响,可能会重复。但是是的,盐的主要用途是。。。彩虹表是基于典型的基于字典的密码,还是通过哈希本身计算出来的?彩虹表基本上是使用相同的哈希函数预先生成的哈希。对于长度为4的字符串,将生成所有4个字符长度的组合,并通过相同的哈希函数传递和存储。如果将来你得到任何长度为4个字符的散列,那么你只需在表中查找可能的候选字符。这基本上是正确的,但是在4个字符的密码中添加一个30个字符的salt并没有多大帮助。salt用于使任何密码计算都是唯一的,因此获取哈希值的攻击者不能使用预计算表。但是,盐没有加密。在SQL转储中,盐将以普通形式存在。所以破解一个四字符的密码仍然非常简单。因为只有四个字可以猜。它增加的安全性可以忽略不计。@Erind-是的,salting对4个字符的密码几乎没有安全性。但它需要更大的密码。安全性不在于破解单个密码。那还是蛮力时代。安全性是,如果我对50个使用不同盐的不同网站使用相同的密码,即使你设法破解了一个网站并找出了我的明文密码和相应的哈希,然后,你将无法将该散列与存储在其他站点上的散列进行比较-你还需要对它们进行妥协/暴力。如果没有盐,一旦找到已知散列的明文,你就可以对密码恰好相同的任何人进行妥协,而无需进一步努力。Salt更多的是保护其他人不受一个傻瓜的错误的伤害。当然,如果在破坏了最初的网站后,你认为我使用了相同的密码——你就是金黄色的。但是,如果没有直接的方法将不同站点上的各种帐户直接关联到我,那么攻击者仍有很多工作要做。