当前位置: 首页 > 后端技术 > Java

替代UUID,NanoID更快更安全!

时间:2023-04-01 17:08:56 Java

前言UUID是软件开发中最常用的通用标识符之一。然而,在过去几年中,其他竞争对手对其存在提出了挑战。其中,NanoID是UUID的主要竞争对手之一。因此,在本文中,我们将详细介绍NanoID的功能、亮点和局限性,以便我们更好地了解何时使用它。了解NanoID以及如何使用它在JavaScript中生成UUID或NanoID非常简单。它们都有相应的npm包来帮助我们实现生成。我们需要做的就是运行npminanoid命令来安装NanoIDNPM库并在我们的项目中使用它:import{nanoid}from'nanoid';model.id=nanoid();你知道NanoID的每周NPM下载量1175.4万,运行速度比UUID快60%吗?此外,NanoID比UUID年轻了将近7年,并且它已经拥有比UUID更多的GitHubstar。下图是两者的npm趋势对比,可以看出NanoID的上升趋势与UUID的平稳进展形成鲜明对比。我希望这些数字已经说服您尝试使用NanoID。但是,这两者之间的主要区别很简单。它归结为用于键的字母表。由于NanoID使用比UUID更大的字母表,因此较短的ID可以用于与较长的UUID相同的目的。-NanoID只有108字节那么大与UUID不同,NanoID的大小要小4.5倍,并且没有任何依赖关系。此外,大小限制已用于将大小再减少35%。大小缩减直接影响数据的大小。例如,使用NanoID的对象小巧紧凑,可用于数据传输和存储。这些数字随着应用程序的增长而变得明显。-更安全在大多数随机生成器中,它们使用不安全的Math.random()。但是,NanoID使用加密模块和WebCryptoAPI,这意味着NanoID更安全。此外,NanoID在ID生成器的实现中使用了自己的算法,称为统一算法,而不是使用“随机%字母表”随机%字母表。我们打造了一个高素质的技术交流群。和优秀的人在一起,你自己也会变得优秀。赶紧点击入群,享受共同成长的快乐。-快速紧凑NanoID比UUID快60%。与UUID字母表中的36个字符不同,NanoID只有21个字符。0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz-此外,NanoID支持14种不同的编程语言:C#、C++、Clojure和ClojureScript、Crystal、Dart&Flutter、Deno、Go、Elixir、Haskell、Janet、Java、PHPNim、PerlPython、Ruby、Rust、Swift字典.-兼容性它还支持PouchDB、CouchDBWebWorkers、Rollup和React以及Reach-Native等库。我们可以使用npxnanoid来获取终端中的唯一ID。在JavaScript中使用NanoID的唯一要求是首先安装NodeJS。此外,我们可以在Redux工具包中找到NanoID,并将其用于其他用例,如下所示:NanoID的优点在于它允许开发者使用自定义字母表,我们可以改变文本或id的大小。像这样:从'nanoid'导入{customAlphabet};constnanoid=customAlphabet('ABCDEF1234567890',12);model.id=nanoid();在上面的例子中,我将自定义字母定义为ABCDEF1234567890,并将Id的大小定义为12。-无第三方依赖由于NanoID不依赖任何第三方依赖,因此能够变得更加稳定和自主时间。从长远来看,这有助于优化包的大小,并使其不易出现依赖性问题。局限性和未来关注点据StackOverflow的许多专家称,使用NanoID没有明显的缺点或局限性。非人类可读性是许多开发人员在NanoID中看到的一个主要缺点,因为它使调试变得更加困难。但是,NanoID比UUID更短且更易读。另外,如果使用NanoID作为表的主键,如果使用与聚簇索引相同的列,也会出现问题。这是因为NanoID不是连续的。未来......NanoID正在慢慢成为最流行的JavaScript唯一ID生成器,大多数开发人员更愿意选择它而不是UUID。上面的基准显示了NanoID与其他主要ID生成器相比的性能:使用默认字母表每秒超过220万个唯一ID,使用自定义字母表每秒超过180万个唯一ID。根据我使用UUID和NanoID的经验,我建议在未来的任何项目中使用NanoID而不是UUID,因为它体积小、URL友好、安全且速度快。

最新推荐
猜你喜欢