我是哈希的新手,我知道MD5(我知道它已經壞了)和SHA-1都是固定的哈希算法,但是鑑於大多數密碼都是字典單詞或其他類似的密碼,存儲它的意義何在?如果攻擊者可以使用谷歌來回溯原始密碼,哈希值是?如果給定的字符串總是生成相同的哈希,哈希如何安全?
我的意思是,是不是SHA-1或SHA-2或其中任何一種算法都沒用?
我是哈希的新手,我知道MD5(我知道它已經壞了)和SHA-1都是固定的哈希算法,但是鑑於大多數密碼都是字典單詞或其他類似的密碼,存儲它的意義何在?如果攻擊者可以使用谷歌來回溯原始密碼,哈希值是?如果給定的字符串總是生成相同的哈希,哈希如何安全?
我的意思是,是不是SHA-1或SHA-2或其中任何一種算法都沒用?
爲了避免受到彩虹和「谷歌」攻擊,你需要加鹽。看看http://en.wikipedia.org/wiki/Salt_%28cryptography%29。
你完全正確,簡單地散列一個原始密碼將是不安全的。 Salting是解決方案。而不是散列只是密碼,散列密碼+ random_data並保存random_data與密碼。
這不是一個真正具體的編程問題。嘗試搜索[security.stackexchange.com](https://security.stackexchange.com),如果找不到答案,請在那裏發佈問題。 – genisage 2015-01-20 22:26:45
他們沒有使用非字典密碼。無論如何,哈希不只是用於密碼,這是一個應用程序。 – watery 2015-01-20 22:29:32
我認爲這可能是題外話題,因爲這是關於[安全](http://security.stackexchange.com/)而不直接涉及編程。 – 2015-01-20 22:29:47