首页 > 代码编程 > 前端开发 > js获取uuid(生成唯一标识符的JavaScript代码)

js获取uuid(生成唯一标识符的JavaScript代码)

2023-07-03 前端开发 35 ℃ 0 评论

什么是UUID

UUID,全称为 Universally Unique Identifier (通用唯一识别码),是一种软件构建的标准,它用来在计算机系统中标识信息的唯一性。需要注意的是,UUID并不保证相关信息在全球的唯一性,但几乎可以忽略UUID重复的可能性。

UUID的生成方式

UUID可以通过多种方式生成。其主要的生成方式包括:

基于时间戳(Version 1):基于当前时间和MAC地址生成UUID,保证在同一节点内具有唯一性。

基于随机数(Version 4):随机生成UUID,是使用最广的一种生成方式。

基于名称(Version 3、5):根据名称和命名空间的MD5或SHA-1哈希值生成UUID。

UUID的使用场景

UUID主要用于在计算机系统中标识信息的唯一性。它可以用于Web应用程序、客户端应用程序、数据库、操作系统和编程语言等多个领域,包括但不限于以下情境:

分布式系统中对象的唯一标识符。

数据库记录的主键。

Session ID。

文件名。

消息队列中消息的唯一标识符。

Javascript中如何生成UUID

在Javascript中,我们可以使用第三方库来生成UUID,如UUID.js。该库提供了多种版本的UUID生成方法:

```javascript

// 当前时间戳生成的Version 1 UUID

const uuidv1 = require('uuid/v1');

console.log(uuidv1()); // '6c84fb90-12c4-11e1-840d-7b25c5ee775a'

// 基于随机数生成的Version 4 UUID

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

console.log(uuidv4()); // '110ec58a-a0f2-4ac4-8393-c866d813b8d1'

// 基于名称和命名空间生成的Version 3和5 UUID

const uuidv3 = require('uuid/v3');

const uuidv5 = require('uuid/v5');

console.log(uuidv3('hello', uuidv3.DNS)); // '5df41881-3aed-3515-88a7-2f4a814cf09e'

console.log(uuidv5('hello', uuidv5.DNS)); // 'fdda765f-fc57-5604-a269-52a7df8164ec'

```

除了使用第三方库外,我们还可以使用Javascript原生对象Math和Date结合生成随机数和时间戳的方式来生成UUID。

```javascript

function generateUUID() {

const time = new Date().getTime();

const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {

const r = (time + Math.random() * 16) % 16 | 0;

time = Math.floor(time / 16);

return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);

});

return uuid;

}

console.log(generateUUID()); // '03f9c5f7-3ff8-4ed7-aec2-4b86f4ab4fa0'

```

总结

UUID是一种用于在计算机系统中标识信息唯一性的标准,它可以用于Web应用程序、客户端应用程序、数据库、操作系统和编程语言等多个领域。Javascript中可以使用第三方库和原生对象结合方式来生成UUID。

炮渣日记