gpt4 book ai didi

Java UUID 生成

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:09 24 4
gpt4 key购买 nike

我想根据对象生成 UUID。相同的对象需要具有相同的 UUID。

我读到了 3 型 UUID,其值基于名称和命名空间。 java.util.UUID 有一个 nameUUIDFromBytes 方法,它将字节数组作为参数。

所以我考虑将我的对象序列化为字节数组并将它们提供给 nameUUIDFromBytes 方法。

但我对 UUID 的命名空间方面感到困惑。这是否意味着在另一台机器上生成的 UUID 会有所不同?

生成 UUID 的最佳方法是什么,当 obj1.equals(obj2) == true 时,uuid1.equals(uuid2) == true 即使uuid1 不是 uuid2 在另一台机器上生成的?

编辑:对于那些将此投票为如何实现 hashCode 的副本的人,请重新打开此内容。我问的是 UUID,而不是哈希码。除非您认为生成 UUID 的最佳方法是使用哈希码。如果是这样,请写一个答案,说明为什么这是最好的方法,而不是用几乎没有任何关系的东西来结束这个问题。

最佳答案

操作系统将生成的 UUID 保留将来自机器的信息与时间信息等混合的权利。 (事实上​​ ,早期的 Microsoft UUID 生成器会获取网卡信息,这确实非常不安全,因为可以从生成的 UUID 中删除它!)。

所以使用你最喜欢的 UUID 生成器是不合适的。

可以做的是从本质上增强用于创建散列码的方法,将其扩展到 128 位。将该字节数组转换为 UUID 格式,您就完成了。

关于Java UUID 生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42111243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com