26 lines
608 B
JavaScript
26 lines
608 B
JavaScript
|
"use strict";
|
||
|
|
||
|
import crypto from './crypto_async.mjs';
|
||
|
|
||
|
/**
|
||
|
* Generates cryptographically secure random ids.
|
||
|
* @return {string} A crypto-secure random id as a string.
|
||
|
*/
|
||
|
async function get_id_string(length) {
|
||
|
return (await crypto.randomBytes(length / 1.3333333333333))
|
||
|
.toString("base64")
|
||
|
.replace(/\+/g, "-").replace(/\//g, "_")
|
||
|
.replace(/=/g, "");
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Generates a crypto-secure random id.
|
||
|
* @return {number} A crypto-secure random integer, suitable for use as a random id.
|
||
|
*/
|
||
|
async function get_id_number() {
|
||
|
return parseInt(
|
||
|
(await crypto.randomBytes(4)).toString("hex"),
|
||
|
16
|
||
|
);
|
||
|
}
|