Files
18xchat/assets/Scripts/chat18x/foundation/identity/DeviceId.ts
T
2025-08-15 16:19:31 +08:00

17 lines
695 B
TypeScript

export default class DeviceId {
static uuidv4(): string {
const hex: string[] = [];
for (let i = 0; i < 256; i++) hex[i] = (i < 16 ? "0" : "") + i.toString(16);
const r: number[] = [];
for (let i = 0; i < 16; i++) r[i] = Math.floor(Math.random() * 256);
r[6] = (r[6] & 0x0f) | 0x40; // version 4
r[8] = (r[8] & 0x3f) | 0x80; // variant
return (
hex[r[0]] + hex[r[1]] + hex[r[2]] + hex[r[3]] + "-" +
hex[r[4]] + hex[r[5]] + "-" +
hex[r[6]] + hex[r[7]] + "-" +
hex[r[8]] + hex[r[9]] + "-" +
hex[r[10]] + hex[r[11]] + hex[r[12]] + hex[r[13]] + hex[r[14]] + hex[r[15]]
);
}
}