【发布时间】:2012-09-05 09:14:29
【问题描述】:
如果攻击者可以访问用户的数据库并且密码存储在哈希中,那么攻击者可以解码该哈希吗?你能推荐任何使用我们可以解码哈希的工具吗?
【问题讨论】:
如果攻击者可以访问用户的数据库并且密码存储在哈希中,那么攻击者可以解码该哈希吗?你能推荐任何使用我们可以解码哈希的工具吗?
【问题讨论】:
您可以在此处找到更多详细信息:http://crackstation.net/hashing-security.htm
为了提高散列密码的安全性,您也应该使用“加盐散列”,如上面链接中所述。
【讨论】:
此答案假定您谈论的是标准的、相对安全的散列算法之一,例如 MD5 或 SHA-1。
这些算法产生的散列被设计为“单向”,即散列不能用于派生用于创建它的值。
存在称为Rainbow Tables 的东西,它们本质上是巨大的数据库,将哈希映射回值,但它们通常只涵盖常见值,例如英语单词。
使散列更安全并提供一些保护以防止基于彩虹表的攻击的一种常用方法是使用salt。
另一个问题是从哈希到值的映射是一对多的,因此给定的哈希将有许多(实际上是无限数量)的值,这些值将产生该哈希值,所以有 没有办法确定原始值是多少。
【讨论】:
不,您无法解码哈希值。哈希是一段数据的单向(几乎是唯一的)表示。您可以对哈希使用彩虹表、暴力破解或字典攻击来恢复未加密的密码。
http://en.wikipedia.org/wiki/Rainbow_table
【讨论】: