我正在寻找一种为字符串创建唯一键的算法。 对于每个代码执行实例,生成的字符串键应该相同。 我想将密钥和字符串序列化为一个文件,并在其他平台上反序列化(二进制文件),如Android应用程序,机顶盒等......
在这方面,有人能帮助我吗?
答案 0 :(得分:3)
您可以使用hashCode()函数。
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#hashCode()
答案 1 :(得分:1)
您可以使用String.hashCode()方法。但是hashCode()方法是特定于实现的,这意味着(理论上)它不能跨平台使用。另一种常见的方法是使用MD5哈希。
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes("UTF-8"));
return new BigInteger(1, md.digest()).intValue();
这应该为每个字符串生成一个唯一的整数。应该可以在其他Java平台甚至其他编程语言中使用MD5算法从同一个字符串中获取相同的整数。