UNPKG

ultra-uuid

Version:

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

43 lines (33 loc) 1.17 kB
let lastTime = 0; let counter = 0; 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"); // 0000–9999 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(""); } module.exports = { generateUltraUUID };