如何创建GUID / UUID
如何创建GUID / UUID
技术背景
GUID(Globally Unique Identifier)和 UUID(Universally Unique IDentifier)通常可互换使用,是一种由数字和字母组成的128位标识符,根据 RFC 4122 标准设计,旨在提供一定的唯一性保证。在很多场景中,如数据库记录的唯一标识、分布式系统中的数据区分等,都需要使用到 UUID。
实现步骤
现代浏览器和 JS 运行时的标准方法
在所有现代浏览器和 JS 运行时中,crypto.randomUUID()
已成为标准方法。不过,由于新的浏览器 API 仅限于安全上下文,此方法仅适用于本地提供的页面(localhost
或 127.0.0.1
)或通过 HTTPS 提供的页面。
1 |
|
使用 uuid
模块
对于需要生成其他 UUID 版本、在旧平台上或非安全上下文中生成 UUID 的情况,可以使用 the uuid
module。它经过了充分测试和支持。
安装
1 |
|
使用示例
1 |
|
自定义实现
如果以上方法不适用,也可以使用自定义函数生成 UUID。
1 |
|
最佳实践
- 使用标准方法:优先使用
crypto.randomUUID()
方法,因为它是现代浏览器和 JS 运行时的标准方法,并且具有良好的安全性和性能。 - 使用成熟的库:如果需要生成其他版本的 UUID 或在旧平台上运行,建议使用
uuid
模块,它经过了充分测试和支持。 - 避免使用
Math.random()
:基于Math.random()
的 UUID 生成器不能提供良好的唯一性保证,强烈建议避免使用。
常见问题
- 兼容性问题:
crypto.randomUUID()
方法仅适用于现代浏览器和 JS 运行时,在旧版本的浏览器中可能不支持。可以使用uuid
模块来解决兼容性问题。 - 唯一性问题:虽然 UUID 设计用于提供一定的唯一性保证,但由于生成算法的随机性,仍然存在极小的碰撞概率。在对唯一性要求极高的场景中,需要进行额外的检查。
如何创建GUID / UUID
https://119291.xyz/posts/how-to-create-guid-uuid/