我知道PHP 5.5的新哈希函數不必使用用戶指定的salt,但會增加安全性嗎?我一直在做一些閱讀,並且據我所知,散列函數每次使用隨機鹽,當它需要驗證散列時,它可以從散列值中檢索它。但是有沒有什麼優勢可以產生自己的鹽和使用它們?任何損害?使用PHP 5.5的散列函數來增加安全性
回答
我知道PHP 5.5的新哈希函數不必使用用戶指定的salt,但它會增加安全性嗎?
假設你說的是password_hash
,那麼沒有。它含有你需要的所有鹽,並且沒有任何優勢可以添加。
也沒有損害,除了更多的代碼=更復雜的=更多的錯誤的可能性。
謝謝!這有助於 – Chris
我想補充一點,指定你自己的salt的能力已經在PHP 7中被棄用了,因爲我們沒有發現可能有用的單個情況,但很多情況下人們設法使用它來壯觀地破壞事物。 – NikiC
@NikiC - 很高興聽到,我認爲這是一個非常明智的決定。 – martinstoeckli
似乎你在這裏有一些誤解。
一旦生成散列,整體想法是,它完全是一種方式。這意味着,從安全哈希算法的消息摘要中,無法知道鹽是什麼。例如,我看到人們將鹽存儲在另一列中。
鹽被設計用來在你的消息摘要集中創建熵。並防止使用彩虹表進行攻擊。 salt爲消息摘要增加了一個隨機性元素,超出了算法和原始值的範圍。
不利於嘗試聰明並使用自己的散列,這意味着您可能不像編寫API的安全專家那樣聰明。嚴重的是,當涉及到安全性時,你無法利用它來對抗你的想法。人腦容易出錯;這就是爲什麼我們在團隊中工作。一個專家團隊爲您製作了隨機哈希生成器。認真地使用它們。
我應該更具體些。如果PHP 5.5函數在每個哈希上使用隨機鹽,它將如何驗證密碼? – Chris
當然你必須知道鹽才能進行驗證,它存儲在散列值內的明文。 – martinstoeckli
@martinstoeckli所以哈希中只含有純文本鹽?所以也許這不是巧合,我曾經在我的哈希中看到「垃圾郵件」這個詞。如果有人能夠訪問你的數據庫,他們不能把這個散列,把它放到他們自己的頁面,並嘗試使用password_hash強制它? – Chris
- 1. 散列令牌的隨機數據是否會增加安全性?
- 2. PHP - MD5,SHA,安全散列
- 3. 使用PHP 5.5安裝xdebug
- 4. 使用函數的PHP數據安全性幫助
- 5. PHP加起來MD5散列?
- 6. 如何在java中使用散列函數來散列密碼?
- 7. PHP類函數的散列
- 8. 是否有最大數量的「安全」數據來散列?
- 9. 使用NodeJS服務器散列文本的安全性
- 10. 增加散列值
- 11. PHP函數 - 安全性問題?
- 12. PHP上傳文件增強安全性
- 13. PHP函數error_log()是否安全使用?
- 14. 選擇php用來存儲數組的散列函數
- 15. 來自安全散列函數的無符號字符的模型
- 16. 增加告訴朋友PHP腳本的安全性
- 17. 散列算法SHA256,我的方法是否安全?我如何添加一個鹽值來提高安全性
- 18. 的PHP 5.5的散列API和數據庫
- 19. 使用鑰匙串增加iOS應用程序安全性
- 20. 使用計數器來增加列號
- 21. 使用散列函數發送函數
- 22. 如何使用間接函數來增加列?
- 23. 對AuthComponent中的普通MD5散列禁用安全性Salt?
- 24. SHA1在PBKDF2中作爲散列函數仍然安全嗎?
- 25. 如何在android中使用ssl時增加安全性volley
- 26. SQL序列的安全性/自動遞增整數值
- 27. 用於php函數的安全API
- 28. 哈希散列使它更安全嗎?
- 29. 增加安全性的隨機TLD名稱,數字和字母?
- 30. PHP:使用CURL時的安全性?
自己生成鹽不會有什麼好處。你可以做的是,用服務器端密鑰加密散列,這在某些情況下可能是一個優點。如果您有興趣,請查看我的[tutorial](http://www.martinstoeckli.ch/hash/en/index.php)的結尾。 – martinstoeckli