JS生成唯一id方式之UUID和NanoID的示例分析
发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章给大家分享的是有关JS生成唯一id方式之UUID和NanoID的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、为什么 NanoID 正在取代 UUID1
千家信息网最后更新 2026年11月04日JS生成唯一id方式之UUID和NanoID的示例分析一、为什么 NanoID 正在取代 UUID
二、js如何生成
三、NanoID的方式
这篇文章给大家分享的是有关JS生成唯一id方式之UUID和NanoID的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
一、为什么 NanoID 正在取代 UUID
1、.更安全 在大多数随机生成器中,它们使用不安全的 Math.random() 。但是,NanoID 使用 crypto module 和 Web Crypto API,意味着 NanoID 更安全。 此外,NanoID 在 ID 生成器的实现过程中使用了自己的算法,称为 统一算法,而不是使用"随机 % 字母表" random % alphabet。
2、 它既快速又紧凑 NanoID 比 UUID 快 60%。与 UUID 字母表中的 36 个字符不同,NanoID 只有 21 个字符。
此外,NanoID 支持 14 种不同的编程语言,它们分别是:
C#、C++、Clojure 和 ClojureScript、Crystal、Dart & Flutter、Deno、Go、Elixir、Haskell、Janet、Java、Nim、Perl、PHP、带字典的 Python、Ruby、Rust、Swift
3、兼容性
它还支持 PouchDB、CouchDB WebWorkers、Rollup 以及 React 和 Reach-Native 等库。 我们可以使用 npx nanoid 在终端中获得唯一 ID。
二、js如何生成
我们看下他们都是如何用js生成的
首先说下,之前我们是如何生成uuid的
方法一:
function guid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); });}guid() // "a1ca0f7b-51bd-4bf3-a5d5-6a74f6adc1c7"方法二:
var _S4 = function() { return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1)}// 获取广告请求唯一ID 方式是当前时间戳+13位随机吗export function GetsingleId() { var _res = (_S4() + _S4() + '-' + _S4() + '-' + _S4() + '-' + _S4() + '-' + _S4() + _S4() + _S4()) return '_' + config.version + '_' + _res}方法三:
function uuid() { var s = []; var hexDigits = "0123456789abcdef"; for (var i = 0; i < 36; i++) { s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); } s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010 s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01 s[8] = s[13] = s[18] = s[23] = "-"; var uuid = s.join(""); return uuid;}uuid() // "ffb7cefd-02cb-4853-8238-c0292cf988d5"三、NanoID的方式
import { nanoid } from 'nanoid'let idA = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT"//也可以指定生成字符串的长度let idB = nanoid(5)主要可以通过npm包的形式安装,核心代码如下:
let urlAlphabet = 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'let nanoid = (size = 21) => { let id = '' // A compact alternative for `for (var i = 0; i < step; i++)`. let i = size while (i--) { // `| 0` is more compact and faster than `Math.floor()`. id += urlAlphabet[(Math.random() * 64) | 0] } return id}感谢各位的阅读!关于"JS生成唯一id方式之UUID和NanoID的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
生成
方式
安全
字符
方法
示例
分析
不同
内容
字母
字母表
更多
生成器
算法
篇文章
支持
不错
实用
紧凑
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
百单网互联网科技有限公司怎么样
博彦科技互联网金融
广州万易互联网科技有限公司
华服互联网科技怎么样
中关村互联网 科技集团
百单互联网科技有限公司
狮子座互联网科技培训
丰台科技园 互联网公司
博兴的互联网电子科技公司
团飞科技与伯堂互联网服务平台
互联网科技研发水平
广西互联网科技孵化中心
济南有互联网科技公司吗
长沙互联网科技
广州千川互联网科技有限公司
美国互联网科技公司
领航科技大厦互联网公司
互联网科技平台产品运营
西安左小互联网科技有限公司
恒生互联网科技趋势
互联网巨头反垄断金融科技
火传媒上海互联网科技
美国互联网前沿科技
中国的互联网科技企业的崛起
重庆威客帮互联网科技
浙南科技城互联网大厦建设工程
威龙国际互联网科技公司
互联网科技如何创业
山东有哪些互联网科技公司
电子商务与互联网科技的关系