randomuuidisnotafunction與UUID

一、UUID是什麼?

UUID(Universally Unique Identifier,通用唯一標識符)是一種128位長的標識符,用於在計算機系統中識別信息

UUID是通過MAC地址、時間戳、命名空間、隨機數和其它方法,保證ID的唯一性

在Java中,我們可以使用java.util.UUID類來生成UUID

import java.util.UUID;

System.out.println(UUID.randomUUID());
// output: 7d65c57e-2f0d-449d-b645-e8da4b556250

二、randomuuidisnotafunction的問題

在JavaScript中,我們通常使用Math.random()方法生成隨機數。但是,這種方式生成的隨機數是不唯一的

console.log(Math.random()); // output: 0.6528870726352309
console.log(Math.random()); // output: 0.7409684183808188

所以,有些人會使用類似於這樣的方式生成UUID

function uuidv4() {
  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);
  });
}

console.log(uuidv4()); // output: "4871f5ad-9fad-495b-9d88-ab8e65c7a54b"
console.log(uuidv4()); // output: "da4d6784-e000-4b22-a73a-8eff0eb227c6"

然而,上面這種方式生成的”UUID”,實際上並不是真正的UUID,而是偽造的。因為它並沒有遵守UUID標準。事實上,在JavaScript中,並沒有內置的UUID生成器。所以,我們必須藉助一些第三方庫來生成UUID

三、通過第三方庫生成UUID

在JavaScript中,有一些第三方庫可以用來生成UUID,比如:

  • node-uuid
  • uuid

下面是node-uuid的使用方法:

var uuid = require('node-uuid');

console.log(uuid.v4()); // output: "bb7e85b7-fc97-4135-9ce5-414f1c0891fb"
console.log(uuid.v4()); // output: "486dd8fb-9c86-4ee2-bea1-fd5600708ef6"

下面是uuid的使用方法:

import { v4 as uuidv4 } from 'uuid';

console.log(uuidv4()); // output: "c1d805ed-434e-4729-bdd1-f5b0ae4d7350"
console.log(uuidv4()); // output: "92b16105-6dee-4a25-836b-cc81fca93e51"

四、總結

UUID是一種用於在計算機系統中識別信息的128位長的標識符。在JavaScript中,通過第三方庫可以很方便地生成UUID。而自己實現UUID生成器並不可取,因為這樣生成的”UUID”並不遵守UUID標準,也不具有唯一性。

原創文章,作者:POXL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/138401.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
POXL的頭像POXL
上一篇 2024-10-04 00:19
下一篇 2024-10-04 00:19

相關推薦

  • 更好的理解UUID獲取方法

    在軟件應用程序的開發中,UUID是一個非常重要的概念。UUID是通用唯一標識符的縮寫,它是一種可以產生唯一標識符的方法。在本文中,我們將從多個方面來描述UUID獲取方法。 一、UU…

    編程 2025-04-13
  • Mybatis UUID應用詳解

    一、UUID概述 UUID是一種由網絡通用唯一標識符(Universally Unique Identifier)的縮寫,是由一組32位數字的十六進制數所構成。其核心思想是通過網絡…

    編程 2025-02-05
  • Java UUID生成的完全指南

    在Java編程中,UUID是一種生成唯一標識符的流行方式。本文將從多個方面對Java UUID生成進行詳細闡述,涵蓋UUID的類型、生成算法、應用場景以及最佳實踐。希望本文能夠幫助…

    編程 2025-01-24
  • 前端UUID詳解

    一、前端UUID生成器 在前端生成UUID是一個很常見的操作,可以通過一些在線工具來實現。 但是如果有相關需求,我們也可以編寫代碼實現前端UUID的生成。 function gen…

    編程 2025-01-16
  • 詳解獲取UUID的多個方面

    一、獲取UUID方法 UUID是一種通用唯一標識符,可以用於區分不同的實體對象。在Java中,獲取UUID主要有兩種方法: import java.util.UUID; publi…

    編程 2025-01-14
  • Java生成UUID的工具類

    UUID是指通用唯一識別碼(Universally Unique Identifier),它是一種軟件構建的標準,也是一種生成方式,用於在分布式計算環境中,為許多不同的設備生成統一…

    編程 2025-01-09
  • 如何獲取UUID

    一、uuid的概述 UUID,通常叫做全局唯一標識符,是計算機系統中用來識別信息對象的標準。 在實際編程過程中,有時需要使用UUID來確保系統中的數據唯一性,比如在數據庫插入新數據…

    編程 2025-01-09
  • Java UUID詳解

    UUID是通用唯一標識符的縮寫,是一個軟件構建的標準,它使用長度為128位(16字節)的值來表示信息。UUID可以保證對在同一時空中的所有機器都是唯一的,它實際上上是利用網絡上的時…

    編程 2024-12-31
  • 前端生成UUID

    UUID(Universally Unique Identifier)是128位的唯一標識符,可用於標識信息或實體。在前端開發中,有時需要生成UUID來標識某些實體或用於其他用途。…

    編程 2024-12-30
  • python中的uuid,python中的數據類型有哪些

    本文目錄一覽: 1、python產生的唯一的uuid多少位 2、python 如何將uuid.uuid1跟路徑進行拼接 3、Python生成UUID 4、python uuid模塊…

    編程 2024-12-25

發表回復

登錄後才能評論