2013-02-14 61 views
1

我听到了另一个网站,做这样的事情是一个坏主意:为什么双重散列字符串(encrpyt)很糟糕?

$string = "hello"; 
sha1(hash("sha512", $string)); 

...就我而言它是一个很好的,聪明的想法!为什么不是? (我不明白在另一个网站上的解释)

感谢

+0

您可以链接到你读它的参考?也许我们可以提供一些背景。多轮散列并不少见。如果使用慢速算法,它会对暴力攻击产生一种速率限制。 – 2013-02-14 21:47:34

+0

这是网站http://phpacademy.org/forum/,但烦人的是它在一些技术问题 – 2013-02-14 21:48:23

+0

你会推荐它吗? – 2013-02-14 21:48:53

回答

3

有什么错散列多次。有很多情况下,这实际上是一个好主意。

  1. 你想放慢蛮力攻击。
  2. 你有一个完整的数据库使用一个破碎的哈希方案散列密码。例如,从MD5升级到SHA1。
  3. 您正在实施挑战/响应方案。
+0

你是什么意思“你正在实施一个挑战/响应方案。”? – 2013-02-14 21:57:04

+0

@Caspar如果您想验证某人有存储在服务器上相同的密钥或盐,服务器可以使用该密钥/盐散列随机生成的消息,并将其发送给客户端。客户端然后将使用密钥/盐来散列哈希并发回双哈希。然后,服务器会再次使用密钥对原始散列进行散列,以比较它与客户端发送的内容是否匹配。 – Eric 2013-02-14 22:16:02

1

您粘贴的示例很糟糕,因为您正在用160位散列哈希散列512位散列。

+0

这可能只是一个快速和肮脏的例子,而不是OP使用的实际代码。 – 2013-02-14 21:51:26

+0

(呵呵,是的,是的) – 2013-02-14 21:56:16

相关问题