有没有办法检查UUID是否是使用node.js中的特定名称空间生成的?

biswetbf  于 2023-05-28  发布在  Node.js
关注(0)|答案(1)|浏览(117)

如何命名一个UUID,以便稍后可以检查它是否是使用命名空间生成的?
特别是,我正在考虑使用UUID v5。然而,据我所知,如果不知道名称,就无法检查特定的UUID是否是使用特定的名称空间生成的。
我已经考虑过简单地生成UUID v4并将前4个字符替换为常量值,例如。00010002,然后检查UUID是否使用该前缀。我意识到这将减少UUID的基数。但是,对于任何名称空间解决方案都是如此。我更担心的是,这将使它无效的v4 UUID。

txu3uszq

txu3uszq1#

然而,据我所知,如果不知道名称,就无法检查特定的UUID是否是使用特定的名称空间生成的。
正确。v5 UUID中的命名空间与密钥一起散列,并且没有办法反转它。
我考虑过简单地生成UUID v4并将前4个字符替换为常量值
当然。这是一个很常见的方法,尽管我经常看到人们使用比2更多的字节作为前缀。我看到的大多数人在开始时使用几个字节的常量但随机的前缀,后面是他们的内部名称空间,后面是随机id。但这并不重要。只要您的UUID不与其他系统的UUID混合,就不需要担心前缀部分的冲突。而且只要有足够的字节仍然是随机的,你就绝对不必担心其他地方的冲突。
在v4 UUID中只有6-8位被定义和they're not at the beginning。它是十六进制编码中第13位和第17位的不同部分。所以我可能会避免混淆这两个数字,但我从来没有遇到过一个系统,实际上验证了版本信息。如果你只是生成一个随机的128位,它将在我见过的每一个系统中正常工作。但我是一个坚持格式的人,所以我个人使用always set the bits correctly,主要是因为它让我高兴,而不是因为消费系统实际上关心。您的方案是好的,只要您没有与其他人可能选择了相同名称空间标识符的其他系统混合在一起。

相关问题