在Java中,将字符串转换为UUID的最简单方式是什么?

33

如何从字符串生成有效的UUID?仅提供字符串是不够的。我需要类似于哈希函数将任何字符串转换为有效UUID。


1
你对唯一性有什么要求吗?你可以调用hashCode方法获取一个整数,然后基于此构建UUID...但显然会产生比必要更多的冲突。 - Jon Skeet
4
这个字符串中有什么与UUID相关的内容吗?你可以直接生成一个新的UUID并在某个位置保留一个映射表。或者使用UUID.nameUUIDFromBytes(string.getBytes()) - user207421
1
这看起来像一个 XY 问题。 - Raedwald
这里有一个很好的答案:https://dev59.com/T1kS5IYBdhLWcg3wMj9I#40230410 - Nicholas DiPiazza
2个回答

26

试一下这个:

String superSecretId = "f000aa01-0451-4000-b000-000000000000";
UUID.fromString(superSecretId);

我在我的项目中使用了这个,它很好用。确保你导入了正确的东西。


4
这种方法仅将 UUID 的字符串表示转换为 UUID,不适用于任何字符串。 https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html#toString-- - user0904
6
这不是操作者所要求的内容。 - Nicholas DiPiazza
2
这不会将__任何__字符串哈希为UUID。 - cdalxndr

16

有没有任何JS的等效物? - Abhijeet Ahuja
1
@Abhijeet 我不知道。你可能想把这个问题单独提出来问。 - Chris Martin
2
MD5在安全方面已经被破解,但在哈希方面仍然很好,具有低碰撞率。参考链接:https://dev59.com/bXVC5IYBdhLWcg3wtzut - cdalxndr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接