2013-02-14 37 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

相關問題