diff --git a/adminfront/src/lib/utils.ts b/adminfront/src/lib/utils.ts index 365058ce..084e99ce 100644 --- a/adminfront/src/lib/utils.ts +++ b/adminfront/src/lib/utils.ts @@ -4,3 +4,22 @@ import { twMerge } from "tailwind-merge"; export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } + +export function generateSecurePassword(length = 16): string { + const charset = + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+~`|}{[]:;?><,./-="; + let password = ""; + if (typeof crypto !== "undefined" && crypto.getRandomValues) { + const values = new Uint32Array(length); + crypto.getRandomValues(values); + for (let i = 0; i < length; i++) { + password += charset[values[i] % charset.length]; + } + } else { + // Fallback for older environments + for (let i = 0; i < length; i++) { + password += charset[Math.floor(Math.random() * charset.length)]; + } + } + return password; +}