3
A
回答
7
一个重要的学习规则是“永远不要试图发明自己的密码学”。你最好只是浪费时间,最坏的情况是引入安全漏洞。
如果您不确定自己是否是该规则的例外情况,那么您对此规则不是例外。
加密哈希的设计者已经担心碰撞,所以你不必这样做。只需选择一个(SHA-256是一个不错的选择),并将您的精力集中在其他应用程序上。
6
您可以改为使用SHA256作为散列算法。迄今为止没有发现碰撞,并且很可能未来在密码上看到任何碰撞。
5
你可以使用更长的散列。例如,SHA-512就是512位,并且(假设它是统一的),与SHA-256冲突的可能性要小得多。但个人而言,我不会为此担心。大多数密码本身小于32个字节(256位),因此与SHA-256发生冲突的可能性极低。
相关问题
- 1. 哈希碰撞的例子?
- 2. 哈希表:在碰撞
- 3. Salt的密码哈希值应该是“哈希”吗?
- 4. 哈希集如何发生碰撞?
- 5. 什么时候哈希碰撞?
- 6. 值得加密密码哈希值吗?
- 7. 交叉编译时避免头碰撞
- 8. 使用A *并仍然避免碰撞?
- 9. 标志位集合,避免碰撞,C
- 10. 如何避免路线碰撞?
- 11. 这是什么样的密码哈希/加密?
- 12. CakePHP哈希密码
- 13. Windows哈希密码
- 14. 似乎无法打破碰撞while循环,哈希
- 15. 加密哈希密码?
- 16. 布置避免碰撞的矩形(算法帮助)
- 17. 使用位移避免碰撞的Swift散列算法
- 18. 立方贝塞尔曲线:最大梯度和避免碰撞?
- 19. ASP.NET的密码哈希和密码盐
- 20. 简单的方法来避免来自不同线程的堵塞碰撞?
- 21. 是否可以验证密码哈希与另一个密码哈希?
- 22. 哈希的tomcat密码
- 23. Django中的密码哈希
- 24. 哈希Unicode的密码
- 25. 针对特定数据结构的无碰撞哈希函数
- 26. 碰撞处理的C++哈希表实现
- 27. 哈希表碰撞,如何获得正确的值?
- 28. 查找碰撞字符串与给定的哈希函数
- 29. Microsoft Dynamics CRM - 密码哈希算法
- 30. SQL Server 2000,是2000密码哈希
请注意,虽然SHA-256在尺寸和加密强度方面足够强大,但它对于密码散列格式来说并不好。你需要一个缓慢的盐渍方案,比如PBKDF2,scrypt或者bcrypt。 – CodesInChaos 2012-05-19 12:11:54