一、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/n/138401.html