Php 为什么双重散列字符串(encrpyt)是不好的?

Php 为什么双重散列字符串(encrpyt)是不好的?,php,encryption,Php,Encryption,我在另一个网站上听说这样做是个坏主意: $string = "hello"; sha1(hash("sha512", $string)); 。。。就我而言,这是个好主意!为什么不是呢?(我不太理解另一个网站上的解释) 谢谢多次散列没有错。在很多情况下,这实际上是一个好主意 你想减缓暴力攻击 您有一个数据库,其中满是散列密码,使用的散列方案已损坏。例如,从MD5升级到SHA1 您正在实施挑战/响应计划 多次散列并没有什么错。在很多情况下,这实际上是一个好主意 你想减缓暴力攻击 您有一个数据库,其

我在另一个网站上听说这样做是个坏主意:

$string = "hello";
sha1(hash("sha512", $string));
。。。就我而言,这是个好主意!为什么不是呢?(我不太理解另一个网站上的解释)


谢谢

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

  • 你想减缓暴力攻击
  • 您有一个数据库,其中满是散列密码,使用的散列方案已损坏。例如,从MD5升级到SHA1
  • 您正在实施挑战/响应计划

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

  • 你想减缓暴力攻击
  • 您有一个数据库,其中满是散列密码,使用的散列方案已损坏。例如,从MD5升级到SHA1
  • 您正在实施挑战/响应计划

  • 粘贴的示例不好,因为您正在用160位哈希值对512位哈希值进行哈希运算。

    粘贴的示例不好,因为您正在用160位哈希值对512位哈希值进行哈希运算。

    您能将引用链接到读取它的位置吗?也许我们可以提供一些背景。多轮散列并不少见。如果使用缓慢的算法,它会创建一种针对暴力攻击的速率限制。这是一个网站,但令人恼火的是它存在一些技术问题。你会推荐它吗?-几乎完全相同的优点是,散列最有可能不在任何具有已知散列的查找表中。您可以将引用链接到您读取它的位置吗?也许我们可以提供一些背景。多轮散列并不少见。如果使用缓慢的算法,它会创建一种针对暴力攻击的速率限制。这是一个网站,但令人恼火的是它存在一些技术问题。你会推荐它吗?-几乎完全重复的优点是,哈希很可能不会出现在任何具有已知哈希的查找表中。它可能只是一个快速而肮脏的示例,而不是OP正在使用的实际代码。它可能只是一个快速而肮脏的示例,而不是OP正在使用的实际代码。您的意思是“您正在实施质询/响应方案”?@Caspar如果要验证某人是否具有存储在服务器上的相同密钥或salt,服务器可以使用该密钥/salt散列随机生成的消息,并将其发送到客户端。然后,客户机将使用密钥/salt散列并发回双散列。然后,服务器将再次将原始哈希与密钥进行哈希,以比较它是否与客户端发送的内容相匹配。什么是“您正在实施质询/响应方案?”@Caspar如果要验证某人是否具有存储在服务器上的相同密钥或salt,服务器可以使用该密钥/salt散列随机生成的消息,并将其发送给客户端。然后,客户机将使用密钥/salt散列并发回双散列。然后,服务器将使用密钥再次散列原始散列,以比较它是否与客户端发送的内容匹配。