2

如果攻击者可以访问用户的数据库并且密码存储在散列中,攻击者可以解码该散列吗?你能推荐任何使用我们可以解码哈希的工具吗?

4

3 回答 3

2

此答案假定您正在谈论一种标准的、相对安全的散列算法,例如 MD5 或 SHA-1。

这些算法产生的散列被设计为“单向”,即散列不能用于派生用于创建它的值。

有一种叫做彩虹表的东西,它本质上是一个巨大的数据库,可以将哈希映射回值,但是它们通常只涵盖常见的值,比如英语单词。

使散列更安全并提供针对基于彩虹表的攻击的一些保护的一种常用方法是使用salt

另一个问题是从哈希值到值的映射是一对多的,因此给定的哈希值将有许多(实际上是无限数量)值,这些值将产生该哈希值,因此无法确定原始值是多少。

于 2012-09-05T09:19:41.223 回答
2

您可以在此处找到更多详细信息:http: //crackstation.net/hashing-security.htm

为了提高散列密码的安全性,您也应该使用“加盐散列”,如上面链接中所述。

于 2012-09-05T09:17:48.977 回答
1

不,您无法解码散列。散列是一段数据的单向(几乎是唯一的)表示。您可以对哈希使用彩虹表、蛮力或字典攻击来恢复未加密的密码。

http://en.wikipedia.org/wiki/Rainbow_table

http://en.wikipedia.org/wiki/Brute-force_attack

http://en.wikipedia.org/wiki/Dictionary_attack

于 2012-09-05T09:19:12.830 回答