比UUID更轻量、更安全的工具

前言

唯一标识符是我们项目开发中常常用到的需求。

当碰到这个问题,大部分小伙伴第一时间想到的就是UUID

诚然,UUID 自问世以来,前前后后开发了5个版本。最常用的要属 UUID4了。一起来回顾下它的使用。

UUID

先引入依赖

npm i uuid --save

接着就可以导入使用了

const uuidv4 = require('uuid/v4');

// 生成一个理论上不重复的128位16进制表示的数字
uuidv4(); // 0d90c8ac-7c21-486a-a132-39177211d1d4

嗯嗯!确实简单好用!

但今天要给大家分享 UUID 最主要的竞争对手:NanoID

nanoid

NanoID, 是一个小巧、安全、URL友好、唯一的 JavaScript 字符串 ID 生成器。

NanoID 也同样有NPM包来帮我们实现唯一的标识符。

npm i nanoid
import { nanoid } from 'nanoid'
model.id = nanoid() 
//=> "V1StGXR8_Z5jdHi6B-myT"

UUID和NanoID的区别

  • NanoID 大小只有 108 字节
    与 UUID 不同,NanoID 的大小要小 4.5 倍,并且没有任何依赖关系。此外,大小限制已将大小从另外 35% 减小。

大小减少直接影响数据的大小。例如,使用 NanoID 的对象小而紧凑,用于数据传输和存储。

  • 更安全
    在大多数的随机生成器中,他们使用不安全的Math.random()。但是,NanoID使用crypto module和Web Crypto API,这是更安全的。

另外,NanoID在实现ID生成器的过程中使用了它自己的算法,称为统一算法,而不是使用"随机%的字母表"。

Web Crypto API :https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API

crypto module: https://nodejs.org/api/crypto.html

统一算法:https://github.com/ai/nanoid/blob/main/index.js

  • 快速紧凑
    NanoID比UUID快60%。在UUID的字母表里有36个字符,而NanoID只有21个字符。

因此NanoID较短的 ID 可以用于与较长的 UUID 表示相同的目的。

0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-

此外,NanoID支持14种不同的编程语言,它们是:

C#, C++, Clojure and ClojureScript, Crystal, Dart & Flutter, Deno, Go, Elixir, Haskell, Janet, Java, Nim, Perl, PHP, Python with dictionaries, Ruby , Rust, Swift
  • 兼容性

它还支持PouchDB、CouchDB WebWorkers、Rollup,以及React和Reach-Native等库。

你可以通过使用npx nanoid在终端获得一个唯一的ID。唯一的先决条件是要安装NodeJS。(其他语言也有,单纯从nodejs角度考虑哈)


此外,你也可以在Redux工具包内找到NanoID,并将其用于其他使用情况,如下所示。

import { nanoid } from ‘@reduxjs/toolkit’
console.log(nanoid()) //‘dgPXxUz_6fWIQBD8XmiSy’
  • 自定义字母

NanoID的另一个现有特点是它允许开发者使用自定义字母。你可以改变字面意思或ID的大小,如下所示:

import { customAlphabet } from 'nanoid';
const nanoid = customAlphabet('ABCDEF1234567890', 12);
model.id = nanoid();

在上面的例子中,我定义了一个自定义字母ABCDEF1234567890,Id的大小为12。

使用建议

根据 StackOverflow 中的许多专家意见,使用 NanoID 没有明显的缺点或限制。

非人类可读是许多开发人员在 NanoID 中看到的主要缺点。 但似乎唯一标识类字符都有这个问题:非友好性可读使调试变得十分困难。

NanoID 比 UUID 更年轻,且从npm趋势对比来看,NanoID的上升趋势更明显,而UUID的进展则很平缓。

因此,基于NanoID 更小、更快、更安全、更不易冲突,个人更推荐使用 NanoID。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
主板UUID修改工具是一种用于修改计算机主板上唯一标识符(UUID)的软件工具UUID是一个由数字和字母组成的字符串,用于标识计算机硬件设备。它在操作系统和应用程序中具有重要的作用,用于唯一标识计算机及其组件。 主板UUID修改工具通常用于特定情况下,如在虚拟机部署、设备克隆、软件测试等场景中。修改主板UUID可以帮助用户避免硬件冲突、提高软件兼容性,并简化管理和维护。 使用主板UUID修改工具通常需要管理员权限,并遵循一定的操作步骤。具体步骤可能因不同工具而异,但一般包括以下几个主要步骤: 1. 下载和安装主板UUID修改工具:用户可以从官方网站或其他可靠渠道获取主板UUID修改工具的安装程序,并按照提示进行安装。 2. 打开主板UUID修改工具:安装完成后,用户可以运行该工具,并可能需要提供管理员密码或权限。 3. 选择要修改的主板UUID工具通常会列出计算机上可用的硬件设备以及其UUID。用户需要选择要修改的主板UUID并确认。 4. 修改主板UUID:在确认选择后,工具会执行修改主板UUID的操作。过程可能需要一些时间,具体时间取决于计算机性能和工具算法。 5. 完成修改并重启计算机:修改主板UUID后,工具通常会给出修改成功的提示。用户需要按照提示重启计算机,使修改生效。 需要注意的是,修改主板UUID可能涉及到一些风险和法律问题,因此在使用主板UUID修改工具之前,用户应该了解相关法律和政策要求,并遵守所在地的规定。此外,修改主板UUID也可能导致一些意外的后果,如软件许可证失效、系统稳定性问题等,用户应该谨慎操作并备份重要数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值