mirror of https://github.com/openclaw/openclaw.git
25 lines
825 B
TypeScript
25 lines
825 B
TypeScript
import { randomBytes, randomInt, randomUUID } from "node:crypto";
|
|
|
|
export function generateSecureUuid(): string {
|
|
return randomUUID();
|
|
}
|
|
|
|
export function generateSecureToken(bytes = 16): string {
|
|
return randomBytes(bytes).toString("base64url");
|
|
}
|
|
|
|
export function generateSecureHex(bytes = 16): string {
|
|
return randomBytes(bytes).toString("hex");
|
|
}
|
|
|
|
/** Returns a cryptographically secure fraction in the range [0, 1). */
|
|
export function generateSecureFraction(): number {
|
|
return randomBytes(4).readUInt32BE(0) / 0x1_0000_0000;
|
|
}
|
|
|
|
export function generateSecureInt(maxExclusive: number): number;
|
|
export function generateSecureInt(minInclusive: number, maxExclusive: number): number;
|
|
export function generateSecureInt(a: number, b?: number): number {
|
|
return typeof b === "number" ? randomInt(a, b) : randomInt(a);
|
|
}
|