您的位置:首页 > 房产 > 建筑 > JS片段:生成 UUID

JS片段:生成 UUID

2024/10/7 4:33:37 来源:https://blog.csdn.net/weixin_43303603/article/details/139426789  浏览:    关键词:JS片段:生成 UUID

Hi,这里是松桑,每天学习一个 JS 片段,涨涨🧀!今天带来的是如何生成 UUID,UUID作为全局唯一标识,使用常见广泛,包括分布式系统、数据库主键、会话标识、消息队列、日志追踪等等。

什么是UUID

UUID 英文全称为 Universally Unique IDentifier,翻译过来就是:通用唯一标识符。它是一个128位的数字,用于唯一标识互联网上的某个对象或实体。

UUID 是一个在空间和时间上都是唯一的标识符,因为 UUID 是固定的大小,并包含一个时间字段,则值可以翻转(公元3400年左右,取决于具体的算法使用)。UUID 可以用于多种目的,从标记开始生命周期极短的物体,以可靠地识别网络中非常持久的对象。

生成UUID源码

下面的所有实现都符合 RFC4122 v4 标准。

直接通过crypto.randomAPI 可直接生成UUID,Crypto 模块方法是标准化统一的,浏览器和Node端 API 相同。以下为源码:

crypto.randomUUID();
// 'c8d87824-1bb4-4046-bc68-c2ffeed14791'
const { randomUUID } = require('crypto');
randomUUID();
// f51b4b4d-f719-47b3-a39d-33cd7eb6528e

上述实现是符合 RFC 4122 v4版本标准的,想要生成其他版本标准的UUID可以使用 uuidjs/uuid 工具库,完全支持 RFC4122版本1、3、4和5的 UUID。它的特点:

  • 跨平台-支持:CommonJS、 ECMAScript 模块和 CDN 构建、NodeJS12 + (LTS 版本)、Chrome,Safari,Firefox,Edge 浏览器、Webpack 和 rollup.js 模块包等

  • 安全-加密强随机值

  • 小-零依赖,小的内存占用,支持 tree shaking

  • CLI-包含 uuid 命令行实用程序

uuid 工具库生成各版本uuid 代码如下:

const { v1: uuidv1, v4: uuidv4, v5: uuidv5 } = require('uuid');uuidv1();
uuidv4();
uuidv5('https://www.w3.org/', uuidv5.URL);

参考链接

RFC 4122 文稿:https://datatracker.ietf.org/doc/html/rfc4122

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com