想知道我应该使用哪种散列算法从字符串创建主键。现在我正在使用 SHA-1。
过去我使用过 SHA-256,尽管我听说 256 对我的目的来说可能是“矫枉过正”。我也听说过一些关于可能使用 MD5 的事情,但我不太了解那个的利弊。
谢谢!
很大程度上取决于您的用例:对于初学者来说,如果发现碰撞,恶意用户是否可以获得任何东西。散列函数和加密安全散列算法之间存在很大差异。我会假设您的用例是一个正常的编程问题。
MD5 坏了。看到最近如何导致各种语言的字典键散列问题,我不会将它用于任何事情。
随着时间的推移,SHA-1 越来越坏。即使您可能不需要加密安全算法,我也会使用 SHA-256,除非性能差异非常显着,过早优化是邪恶的等等。