JS片段:生成 UUID

2024-06-04 15:52
文章标签 js 生成 uuid 片段

本文主要是介绍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

这篇关于JS片段:生成 UUID的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1030468

相关文章

android 带与不带logo的二维码生成

该代码基于ZXing项目,这个网上能下载得到。 定义的控件以及属性: public static final int SCAN_CODE = 1;private ImageView iv;private EditText et;private Button qr_btn,add_logo;private Bitmap logo,bitmap,bmp; //logo图标private st

js+css二级导航

效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Con

FastAdmin/bootstrapTable 表格中生成的按钮设置成文字

公司有个系统后台框架用的是FastAdmin,后台表格的操作栏按钮只有图标,想要设置成文字。 查资料后发现其实很简单,主需要新增“text”属性即可,如下 buttons: [{name: 'acceptcompany',title: '复核企业',text:'复核企业',classname: 'btn btn-xs btn-primary btn-dialog',icon: 'fa fa-pe

js小题:通过字符串执行同名变量怎么做

在JavaScript中,你不能直接使用一个字符串来直接引用一个变量,因为JavaScript是一种静态类型语言(尽管它的类型在运行时可以变化),变量的名字在编译时就被确定了。但是,有几种方法可以实现类似的功能: 使用对象(或Map)来存储变量: 你可以使用一个对象来存储你的变量,然后使用字符串作为键来访问这些变量。 let myVars = { 'var1': 'Hello', 'var

图形编辑器基于Paper.js教程03:认识Paper.js中的所有类

先来认一下Paper的资源对象,小弟有哪些,有个整体的认识。认个脸。 在Paper.js的 官方文档中类大致有如下这些: 基类: ProjectViewItemPointToolSizeSegmentRectangleCurveCurveLocationMatrixColorStyleTweenToolEventGradientGradientStopEvent 二级或三级类 继承Ite

【Unity Shader】片段着色器(Fragment Shader)的概念及其使用方法

在Unity和图形编程中,片段着色器(Fragment Shader)是渲染管线中的一个阶段,负责计算屏幕上每个像素(片段)的颜色和特性。片段着色器通常在顶点着色器和任何几何处理之后运行,是决定最终像素颜色的关键步骤。 Fragment Shader的概念: 像素处理:片段着色器处理经过顶点着色器和几何着色器处理后,映射到屏幕空间的像素。颜色计算:它计算每个像素的颜色值,这可能包括纹理采样、光

HTML文档插入JS代码的几种方法

在HTML文档里嵌入客户端JavaScript代码有4中方法: 1.内联,放置在< script>和标签对之间。 2.放置在由< script>标签的src属性指定的外部文件中。 3.放置在HTML事件处理程序中,该事件处理程序由onclick或onmouseover这样的HTML属性值指定。 4.放在一个URL里,这个URL使用特殊的“javascript:”协议。 在JS编程中,主张

js 正则表达式出现问题

帮同事写个页面,出现正则表达式不管怎么改都没法匹配的情况。。。。 reg = /^sy[0-9]+$/i; if(rtx.match(reg) == null){ alert("请输入正确的RTX账号!"); return false; } 因为之前一直用的是 reg ="/^sy[0-9]+$/i"; 写PHP写习惯了。。外面多写了两个双引号……T.T 改

bootstrap和JS相关

下表列出了模态框中要用到事件。这些事件可在函数中当钩子使用。 bootstrap 显示隐藏div $('.show-info').click(function () {var show = $(this).data('show');if(show =='all'){$('#creative').show();$('#plan').show();$('#plan').attr('class','

PHP生成csv格式Excel,秒级别实现excel导出功能

防止报超内存,兼容中文,兼容科学技术法。 爽。。。。很爽。。。。 /*** 告诉浏览器下载csv文件* @param string $filename*/public static function downloadCsv($data, $filename, $encoding = 'utf-8'){header("Content-type: text/csv");header("Conten