UNPKG

ultra-uuid

Version:

A non-duplicate ultra-secure UUID generator using timestamp + extended character set

38 lines (32 loc) 1.11 kB
let lastTime = 0; let counter = 0; export function generateUltraUUID(length = 50) { const now = Date.now(); if (now === lastTime) { counter++; } else { counter = 0; lastTime = now; } const timeStr = now.toString(); const counterStr = counter.toString().padStart(4, "0"); const pidStr = (typeof process !== "undefined" ? process.pid : 0) .toString() .padStart(5, "0"); const prefix = timeStr + counterStr + pidStr; const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; const remainingLength = length - prefix.length; let randomStr = ""; for (let i = 0; i < remainingLength; i++) { const index = Math.floor(Math.random() * charset.length); randomStr += charset[index]; } const rawUUID = prefix + randomStr; const arr = rawUUID.split(""); for (let i = arr.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i + 1)); [arr[i], arr[j]] = [arr[j], arr[i]]; } return arr.join(""); }