Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中是否有内置的哈希实现?_Java_Hash - Fatal编程技术网

java中是否有内置的哈希实现?

java中是否有内置的哈希实现?,java,hash,Java,Hash,我有一个由6个整数组成的数组,我想得到(一个整数)的散列值。 我想知道是否有一个相对强大和快速的散列函数在Java中实现 我几乎想把6个整数转换成一个字符串(好像每个整数都是unicode字符或类似的东西,而不是把每个整数表示成一个实际的数字)并使用“hashcode”,但对我来说这听起来效率很低,我想我想要更快的。有什么想法吗 谢谢 int[] myIntArray = {1, 2, 3, 4, 5}; int myHashCode = Arrays.hashCode(myIntArray);

我有一个由6个整数组成的数组,我想得到(一个整数)的散列值。 我想知道是否有一个相对强大和快速的散列函数在Java中实现

我几乎想把6个整数转换成一个字符串(好像每个整数都是unicode字符或类似的东西,而不是把每个整数表示成一个实际的数字)并使用“hashcode”,但对我来说这听起来效率很低,我想我想要更快的。有什么想法吗

谢谢

int[] myIntArray = {1, 2, 3, 4, 5};
int myHashCode = Arrays.hashCode(myIntArray);
注意:数组为所有基元类型的数组实现了
hashCode()
,而不仅仅是int

另外,有些东西告诉我,你将使用一个由6个数字组成的序列作为密码,并将其哈希值与之匹配。在这种情况下,您将需要一个非常非常长的散列。长度至少为24字节的内容,而不是int所给出的4字节。(哈希空间大于输入空间将减少冲突。)

我会选择SHA-384或更高。别忘了加盐

注意:数组为所有基元类型的数组实现了
hashCode()
,而不仅仅是int

另外,有些东西告诉我,你将使用一个由6个数字组成的序列作为密码,并将其哈希值与之匹配。在这种情况下,您将需要一个非常非常长的散列。长度至少为24字节的内容,而不是int所给出的4字节。(哈希空间大于输入空间将减少冲突。)


我会选择SHA-384或更高。不要忘了添加盐。

我很确定所有java定义的对象都已经实现了哈希代码,即使对于数组也是如此。呃,你确定你了解哈希函数的功能吗?或者你的意思是你试图得到一个表示特定整数序列的散列?确切地说,是一个表示6整数序列的散列。你想对散列值做什么?你是把它保存在地图上还是用它做别的东西,比如身份证?我同意布赖恩的观点,这个问题根本没有意义。您希望此哈希代码具有哪些属性?我很确定所有java定义的对象都已经实现了哈希代码,即使对于数组也是如此。呃,您确定了解哈希函数的功能吗?或者你的意思是你试图得到一个表示特定整数序列的散列?确切地说,是一个表示6整数序列的散列。你想对散列值做什么?你是把它保存在地图上还是用它做别的东西,比如身份证?我同意布赖恩的观点,这个问题根本没有意义。您希望此哈希代码具有什么属性?顺便说一句,如果您的哈希空间大于输入空间,则使用哈希函数没有意义,您还可以使用输入空间作为“哈希空间”。@kloop我希望您将其用作安全措施。否则,您是对的,将某些内容散列到比输入空间大的空间不是很有用。顺便说一句,如果您的散列空间比输入空间大,那么使用散列函数没有意义,您还可以使用输入空间作为“散列空间”@kloop我还以为你会用它作为安全措施。否则,您是对的,将内容散列到比输入空间更大的空间不是很有用。