假设我们得到了受害者的密码。
因此,蛮力方法是取每一个可能的字符串,散列,并检查它是否与受害者的散列密码匹配。如果是这样的话,我们可以使用该字符串的密码,并因此被黑。
但是这需要大量的计算能力和大量的时间,甚至对于6-8个字符的字符串也是如此。
但是,如果我们可以散列每一个可能的字符串少于10个字符,并将其存储在存储中,就像一个已排序的数据库一样。因此,当您获得散列密码时,您可以轻松地查找表并获得密码。
P.S:-
在这个例子中,假设我们只使用一种哈希算法,并且有庞大的数据服务器来存储数据。我对安全问题很陌生,这是一个非常基本的问题,但出于某种原因,这个问题的答案在互联网上真的很难找到。
发布于 2020-08-27 22:44:04
这被称为彩虹台,并且是一个非常已知的概念。
这也是为什么你不应该仅仅存储密码的散列。盐 (添加到密码中的随机字符串,然后以明文形式存储以供验证)可以有效地减少这种攻击,从而使不可能使用彩虹表并强制恢复。
另外,为了完整起见,需要注意的是,普通密码散列已经不足以用于凭据(密码),因为它们太快了,这意味着为给定的盐类生成彩虹表太快了,这实际上强制了密码。专门的硬件使恢复相对强的密码成为可能,只要使用简单的密码散列,即使使用盐类也是如此。
因此,最好的做法是使用密钥推导函数(KDF)生成密码散列,其方式使暴力的速度非常慢(不可行),但速度足以验证。而且,在大多数已知的实现中,向每个散列添加一个随机盐是自动的,而且整个过程都是安全的。
例如,PBKDF2、bcrypt、scrypt或最近的Argon2算法。每一种攻击都有不同的特点,对不同的攻击具有更强的抵抗力。
https://stackoverflow.com/questions/63617954
复制相似问题