why is it bad to double hash a string (encrpyt)?
我在另一个网站上听说做类似的事情是个坏主意:
1 2
| $string ="hello";
sha1(hash("sha512", $string)); |
…就我而言,这是一个好的,聪明的主意!为什么不呢?(我不太明白另一个网站上的解释)
谢谢
- 你能把参考链接到你读到的地方吗?也许我们可以提供一些背景。多轮散列并不少见。如果使用慢速算法,它将创建一种针对暴力攻击的速率限制。
- 这是phpacademy.org/forum网站,但令人恼火的是它的一些技术问题。
- 你能推荐一下吗?
- stackoverflow.com/questions/348109/…-几乎重复
- 一个优点是散列很可能不在任何具有已知散列的查找表中。
- 哦,就像一张彩虹桌……
- @casparwylie阅读了AppDeveloper链接的问题。很好的答案…
- 对不起,没想到还有人问这个…
- 如果有帮助,请告诉我:stackoverflow.com/questions/8066215/…
多次散列没有什么问题。在很多情况下,这实际上是一个好主意。
你想减缓暴力攻击。
您有一个数据库,其中包含使用破坏的哈希方案的哈希密码。例如,从MD5升级到SHA1。
您正在实施挑战/响应方案。
- 你的意思是"你正在实施一个挑战/响应计划"。
- @caspar如果要验证某人是否具有存储在服务器上的相同密钥或salt,服务器可以使用该密钥/salt散列随机生成的消息并将其发送到客户机。然后,客户机将使用键/salt散列散列并返回双散列。然后,服务器将再次使用密钥散列原始散列,以比较它是否与客户机发送的内容相匹配。
粘贴的示例不好,因为您要用160位散列对512位散列进行散列。
- 这可能只是一个快速而肮脏的例子,而不是操作所使用的实际代码。
- (呵呵,是的,是的)