如何命名UUID,以便以后可以判断它是否是使用该命名空间生成的?

特别是,我正在考虑使用UUIDv5.然而,据我所知,在不知道名称的情况下,无法判断特定的UUID是否是使用特定的名称空间生成的.

我曾考虑简单地生成UUID v4,并用常量值替换前4个字符,例如00010002,然后判断UUID是否使用该前缀.我意识到这将降低UUID的基数.然而,这对于任何名称空间解决方案都是正确的.我更担心的是,这会使v4UUID无效.

推荐答案

然而,据我所知,在不知道名称的情况下,无法判断特定的UUID是否是使用特定的名称空间生成的.

对,是这样.V5 UUID中的命名空间与键一起散列在一起,没有办法反转它.

我已经考虑过简单地生成UUID v4并用常量值替换前4个字符

好的.这是一种非常常见的方法,尽管我通常看到人们使用比2更多的字节作为前缀.我看到的大多数人在开头使用几个字节的常量但随机的前缀,然后是他们的内部名称空间,然后是随机id.但这真的无关紧要.只要您的UUID不会与其他系统的UUID混合在一起,就不需要担心前缀部分中的冲突.而且,只要足够多的字节仍然是随机的,您就绝对不必担心在其他地方会发生冲突.

在v4 UUID中只定义了6-8位和they're not at the beginning位.它是十六进制编码中第17位的第13位和不同部分.所以我可能会避免弄乱这两个数字,但我从来没有遇到过真正验证版本信息的系统.如果你只是生成一个随机的128位,它将在我见过的每个系统中都能很好地工作.但我坚持格式,所以我个人always set the bits correctly,主要是因为它让我高兴,而不是因为消费系统实际上关心.您的方案很好,只要您没有与其他系统混合在一起,在这些系统中,其他人可能 Select 了相同的名称空间标识符.

Node.js相关问答推荐

赫斯基添加命令已弃用?

Node.js PNG缓冲区获取未知图像格式错误

根据我的测试,为什么在编写Varint代码方面,NodeJS要比Rust快这么多?

当变量在另一个文件中初始化时,在初始化错误之前无法访问变量

具有项目外部子路径导入的 Firebase 函数

如何在 node /快速服务器上配置 mongoDB

如何在带有 JS 的 Nodejs 中使用没有 Async 方法的 Await

无法使用 node 预签名 url 从 React 将图像文件上传到 s3

如何使用填充在mongoose 上保存新数据

如何删除mongodb中嵌套数组中所有出现的数组元素

为什么当我try req.logout() 时出现此错误?

MERN 堆栈项目中的 React [create-react-app] 正在提供依赖项

如何在 mongoDB 中进行全动态搜索?

Cassandra node.js 驱动程序有替代品吗?

添加git信息到create-react-app

具有多个条件的mongoose 查找

Node.js - 判断是否安装了模块而不实际需要它

找不到在 docker compose 环境中运行的 node js 应用程序的模块

AWS Lambda:如何将秘密存储到外部 API?

如何修复此错误 TypeError [ERR_INVALID_CALLBACK]: Callback must be a function