Java 从字符串生成一个大小为12的哈希

Java 从字符串生成一个大小为12的哈希,java,hash,Java,Hash,是否可以从字符串生成一个包含12个字符(字母和数字)的哈希?就像md5,但只有12个字符 使用Java tks您可以从Java中的每个对象(几乎所有对象)提取哈希代码 因此,您可以使用hashCode()方法从字符串中获取哈希值。没有办法设置将获得的哈希的长度,但您始终可以将哈希解析为字符串,并使用子字符串截断它 这样,您可以执行以下操作: //Get the hash int hash = yourString.hashCode(); //Parse it to String String y

是否可以从字符串生成一个包含12个字符(字母和数字)的哈希?就像md5,但只有12个字符

使用Java


tks

您可以从Java中的每个对象(几乎所有对象)提取哈希代码

因此,您可以使用
hashCode()
方法从字符串中获取哈希值。没有办法设置将获得的哈希的长度,但您始终可以将哈希解析为字符串,并使用子字符串截断它

这样,您可以执行以下操作:

//Get the hash
int hash = yourString.hashCode();
//Parse it to String
String yourHash = Integer.toString(hash);
//Truncate the hash
String truncatedHash = yourHash.substring(0, 12)
如果要将哈希值恢复为整数,只需执行
integer.parseInt(truncatedHash)


这不是最清晰的解决方案,但我不知道您到底想要实现什么。

您到目前为止都在尝试什么?很好,但我忘了告诉您,散列应该是一个ID,所以我需要一个不会被复制的担保。@Fabio,这简直是不可能的。如果你把所有长度为13的字符串放入你选择的算法中,你将不得不得到一些重复的字符串,因为长度为13的字符串可能比长度为12的字符串多。如果你想要一个键或什么来识别你的字符串,最简单的方法就是从对象中提取哈希代码,不需要将其截断为12个字符。