加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:17:50 所属栏目:Java 来源:网络整理
导读:Sun / Oracle JDK公开了一个函数,用于在 java.util包中创建一个类型3(基于名称)的UUID:java.util.UUID.nameUUIDFromBytes(byte [] name). 我需要能够使用nameUUIDFromBytes在Java中生成一个类型3的UUID,并且在使用另一种语言创建一个类型3的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?

解决方法

见 this bug report

特别是评论,靠近底部:

Perhaps the course of action at this point would be to fix the javadoc stating
“nameUUIDFromBytes(byte[] namespaceAndName) “one should pass-in a byte array containing the concatenation of the namespace UUID’s bytes and the name bytes (in that order)” That’s assuming the method just MD5’s the byte[] and sets the fields as per the IETF document.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读