ultra-uuid
Version:
A non-duplicate ultra-secure UUID generator using timestamp + extended character set
43 lines (33 loc) • 1.17 kB
JavaScript
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 };