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

前端之家收集整理的这篇文章主要介绍了java – JDK使用什么命名空间来生成名为UUIDFromBytes的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进行比较.

猜你在找的Java相关文章