正确的主键哈希函数

时间:2012-11-18 21:36:49

标签: hash random md5 sha1 sha256

想知道我应该使用哪种哈希算法从字符串创建主键。现在我正在使用SHA-1。

过去我曾经使用过SHA-256,虽然我听说有256个可能因为我的目的而“过度杀伤”。我也听说过一些关于使用MD5的事情,但我不太了解那个的优点和缺点。

谢谢!

1 个答案:

答案 0 :(得分:1)

在很大程度上取决于您的用例:对于初学者来说,如果发现冲突,恶意用户是否可以获得任何收益。散列函数和加密安全散列算法之间存在很大差异。我将假设您的用例是一个正常的编程问题。

MD5 is broken。看到最近如何导致problems to hashing of dictionary keys in various languages,我不会将它用于任何事情。

SHA-1 is more and more broken as time passes。即使您可能不需要加密安全算法,我也会使用SHA-256,除非性能差异非常大,premature optimization being evil以及所有这些。