就像有人可以訪問散列「PafgokWMoHSZE」一樣。因爲這是通過crypt(Password1,Password1)獲得的,它會比任何其他鹽更容易/更難以進行反向工程?字符串和salt與密碼中的crypt()相同是否安全?
2
A
回答
1
我會說這不是很安全,因爲任何人都可以嘗試密碼本身作爲鹽。
一個破解者可以很容易地將它作爲一個規則來總是嘗試密碼本身作爲鹽。甚至不是系統的,而只是在一個測試批次上。如果你的鹽加密密碼泄漏了,他可以嘗試第一次運行,然後發現密碼非常容易,然後對列表的其餘部分應用相同的配方。
更多解釋
如果你的密碼是「花」,任何字典攻擊會試圖詞「花」。破解者會嘗試在md5,SHA1等中查找「花朵」的哈希值。如果它不起作用,那麼他會認爲哈希已被醃製。這使事情變得更加困難。除非他試圖將密碼本身用作鹽。
2
這是不太安全的,不這樣做。問題在於salt加在哈希上 - Pa開頭是Password1的前兩個字符。您已將9個字符的密碼減少爲7個字符的密碼。
PHP的crypt()會自動爲您生成一個隨機鹽。除非你需要一個特定的算法,否則最好放棄它。
編輯:我剛想到這也給了用戶對散列算法的控制,這幾乎肯定不是你想要的。無效鹽(即密碼中的無效字符)也會導致crypt()失敗。
+0
這是一個很好的解釋,謝謝。 –
相關問題
- 1. 使用與密鑰相同的字符串加密字符串是否安全?
- 2. PHP crypt()函數每次返回相同的加密字符串
- 3. 如何解密用crypt加密的PHP密碼字符串?
- 4. php安全,typopast密碼到字符串
- 5. Crypt和Salt對於暴力攻擊比MD5更安全嗎?
- 6. 在PHP中使用crypt()加密密碼的安全性如何?
- 7. 是否將salt與加密的文件中斷安全性一起存儲?
- 8. 如何用crypt()和我的鹽生成相同的加密數據庫密碼字符串值?
- 9. 密碼將相同的字符串加密到不同的字符串?
- 10. Crypt函數爲相同的密碼生成相同的散列
- 11. 使用crypt()函數生成相同加密的不同密碼
- 12. 修剪解密的字符串是否安全?
- 13. 查詢字符串安全與否?
- 14. 密鑰庫密碼是否應與PKCS12證書密碼相同?
- 15. 隱藏連接字符串和mysql的安全密碼
- 16. 如何在Java中加密字符串與ColdFusion中加密的字符串完全相同?
- 17. 對稱加密(AES):是否將安全和正確的加密數據與IV和Salt一起保存?
- 18. 如何在PHP中使用crypt($ pass,'$ 2y $ 09 $ salt')=== crypt($ pass,crypt($ pass,'$ 2y $ 09 $ salt'))?
- 19. 相冊的密碼安全
- 20. 如果讓crypt()生成鹽,那麼PHP中的crypt()函數是否返回salt?
- 21. 空白字符串是否與SQL中的空字符串相同?
- 22. crypt函數返回不同的結果,使用相同的salt,password和blowfish
- 23. HttpCookie.Name與Response.Cookies [string]中的字符串是否相同?
- 24. 爲什麼AES使用相同的密鑰加密相同字符串的密碼總是不同的?
- 25. Java中的密碼安全性 - 將char []轉換爲字符串
- 26. 總是得到與CryptoAPI相同的加密字符串
- 27. 密碼和符合密碼應該是相同的
- 28. '完全相同'的字符串不同
- 29. PHP crypt密碼
- 30. C#確定字符串中的所有字符是否相同
但是這並不要求他已經知道密碼是「Password1」嗎? –
看我添加的解釋。它更清楚嗎? –
這確實解釋了它,同時使我害怕。謝謝你。 –