JDK使用什么命名空间来生成名称为UUIDFromBytes的UUID?

Joh*_*ann 12 java uuid

Sun/Oracle JDK公开了一个函数,用于在java.util包中创建类型3(基于名称)的UUID:java.util.UUID.nameUUIDFromBytes(byte [] name).

我需要能够使用nameUUIDFromBytes在Java中生成类型3 UUID,并在使用其他语言创建类型3 UUID时到达相同的UUID,假设我提供与源相同的字节.

根据javadocs,此函数创建符合RFC 4122的类型3 UUID.但是,根据RFC 4122规范,必须在某个名称空间中创建类型3 UUID.大多数其他语言允许您在创建类型3 UUID时指定命名空间(例如Ruby中的UUIDTools gem).

所以我的问题是:当我调用nameUUIDFromBytes时,JDK使用了什么命名空间UUID?

the*_*ber 7

请参阅此错误报告

特别是评论,靠近底部:

也许此时的行动方针是修复javadoc,声明"nameUUIDFromBytes(byte [] namespaceAndName)"应传入包含命名空间UUID字节和名称字节(按此顺序)的串联的字节数组"这假设方法只是MD5的byte []并根据IETF文档设置字段.

我不知道我是否相信这可以正常工作,但是应该很容易使用UUID规范中的预定义名称进行测试,并与其他实现生成的相同UUID进行比较.