2014-09-03 383 views
6

如何从String中生成有效的UUID?字符串本身并不是我正在寻找的。相反,我正在寻找类似将任何字符串转换为有效UUID的散列函数。Java中将String转换为UUID的最简单方法

+1

那么你有什么要求独特等?你可以调用'hashCode'来获得一个'int',然后根据这个建立一个UUID ......但是你显然会碰到比必要更多的碰撞。 – 2014-09-03 05:56:12

+2

与UUID有任何关联的字符串是什么?你也可以生成一个新的UUID并在某个地方保存一个映射表。或者['UUID.nameUUIDFromBytes(string.getBytes())'](http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html#nameUUIDFromBytes(byte [])) 。 – EJP 2014-09-03 06:01:45

+0

这看起来像一个XY问题。 – Raedwald 2014-09-03 06:58:41

回答

7

在Java核心库中,有java.util.UUID.nameUUIDFromBytes(byte[])

我不会推荐它,因为它是基于MD5的UUID 3,它是一个非常破碎的散列函数。你最好找到一个基于SHA-1的UUID 5(尽管也是sort of broken)。

+0

这甚至更好 - 我建议手动做。 – boky 2014-09-03 06:07:27

+0

任何js等价物? – Abhijeet 2017-02-01 05:22:45

+0

@Abhijeet我不知道。你可能想要作为一个单独的问题来提问。 – 2017-02-01 05:24:01

相关问题