我有一个6个整数的数组,我有兴趣获得(一个int)的哈希值。 我想知道在这种情况下是否存在一个相对强大且快速的哈希函数,它是用Java实现的。
我几乎试图将6个int转换为String(就好像每个int都是unicode字符或类似的东西,而不是将每个int表示为实际数字)并使用“hashcode”,但听起来非常低效对我而言,我认为想要更快的东西。有什么想法吗?
感谢。
答案 0 :(得分:4)
int[] myIntArray = {1, 2, 3, 4, 5};
int myHashCode = Arrays.hashCode(myIntArray);
注意:数组已为所有基本类型的数组实现hashCode()
,而不仅仅是整数。
另外,有些东西告诉我你将使用6个数字的序列作为密码,并使用它的哈希来匹配它。在这种情况下,您将需要一个非常非常长的哈希。至少24字节长的东西,而不是int给你的4。 (具有比输入空间更大的哈希空间将减少冲突。)
我会选择SHA-384或更高版本。不要忘记加盐。