首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我们不能将每一个散列密码存储在存储(HDD)中,并使用它来匹配散列密码,而不是使用蛮力密码破解?

为什么我们不能将每一个散列密码存储在存储(HDD)中,并使用它来匹配散列密码,而不是使用蛮力密码破解?
EN

Stack Overflow用户
提问于 2020-08-27 14:13:33
回答 1查看 95关注 0票数 0

假设我们得到了受害者的密码。

因此,蛮力方法是取每一个可能的字符串,散列,并检查它是否与受害者的散列密码匹配。如果是这样的话,我们可以使用该字符串的密码,并因此被黑。

但是这需要大量的计算能力和大量的时间,甚至对于6-8个字符的字符串也是如此。

但是,如果我们可以散列每一个可能的字符串少于10个字符,并将其存储在存储中,就像一个已排序的数据库一样。因此,当您获得散列密码时,您可以轻松地查找表并获得密码。

P.S:-

在这个例子中,假设我们只使用一种哈希算法,并且有庞大的数据服务器来存储数据。我对安全问题很陌生,这是一个非常基本的问题,但出于某种原因,这个问题的答案在互联网上真的很难找到。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-27 22:44:04

这被称为彩虹台,并且是一个非常已知的概念。

这也是为什么你不应该仅仅存储密码的散列。 (添加到密码中的随机字符串,然后以明文形式存储以供验证)可以有效地减少这种攻击,从而使不可能使用彩虹表并强制恢复。

另外,为了完整起见,需要注意的是,普通密码散列已经不足以用于凭据(密码),因为它们太快了,这意味着为给定的盐类生成彩虹表太快了,这实际上强制了密码。专门的硬件使恢复相对强的密码成为可能,只要使用简单的密码散列,即使使用盐类也是如此。

因此,最好的做法是使用密钥推导函数(KDF)生成密码散列,其方式使暴力的速度非常慢(不可行),但速度足以验证。而且,在大多数已知的实现中,向每个散列添加一个随机盐是自动的,而且整个过程都是安全的。

例如,PBKDF2、bcrypt、scrypt或最近的Argon2算法。每一种攻击都有不同的特点,对不同的攻击具有更强的抵抗力。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63617954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档