具有雪崩效应的java字符串哈希函数

标签 java hash hashcode

在使用 String.hashCode() 进行测试时,我注意到它没有 avalanche effect .我知道有一个 java 端口 Jenkins hash ,但我想知道是否存在具有此属性的哈希函数,也许在某个 apache 库或其他东西中。

编辑:我正在寻找一个展示此属性并返回 32 位(或 64 位)整数(例如,像 Jenkins 哈希)的函数。我没有将它用于密码学,并且我不打算一般地替换 String.hashCode。我只是以为 hashCode 有这个属性,但事实证明它没有,我想知道 java 的标准库或 apache 库中是否有任何东西可以满足我的需要。

最佳答案

如您链接到的维基百科页面中所述,雪崩效应是加密哈希函数的一个重要属性。 String.hashCode() 不是加密哈希函数。它的唯一目标是为不同的字符串生成充分分布的哈希码,以便 HashMap、HashSet 和所有其他基于哈希的集合在保存字符串时高效。

对于加密哈希函数,请查看 JCA ,它允许生成 SHA-1、MD5 和其他加密摘要,它们都具有您正在寻找的效果。

关于具有雪崩效应的java字符串哈希函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008633/

相关文章:

java - 如何分析 Windows 和 Linux 上的应用程序以获得 CPU 和 RAM 使用值?

perl - 遍历 perl 中的哈希值

java - 如果我在重写 hashCode() 函数时返回常量整数,会发生什么情况?

c++ - unordered_map - 与自定义指针键一起使用的正确方法

java - 我什么时候应该为 Map 键创建一个类?

java - 为什么我的代码首先打印一个空行?

ruby-on-rails - 在带有伤寒的 Rails 应用程序中将哈希数组作为参数传递给 POST 的问题

Java:自动 equals() 和 hashCode()

java - RelativeLayout 无法转换为 android.support.v7.widget.Toolbar

hash - ABAP中文件的MD5哈希