/** * Password strength validation utility * Requirements: * - At least 8 characters * - Contains at least one letter * - Contains at least one number * - Contains at least one special character */ export interface PasswordValidationResult { isValid: boolean; errors: string[]; } export const validatePasswordStrength = (password: string): PasswordValidationResult => { const errors: string[] = []; // Check minimum length if (password.length < 8) { errors.push('Password must be at least 8 characters long'); } // Check for at least one letter if (!/[a-zA-Z]/.test(password)) { errors.push('Password must contain at least one letter'); } // Check for at least one number if (!/\d/.test(password)) { errors.push('Password must contain at least one number'); } // Check for at least one special character if (!/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/.test(password)) { errors.push('Password must contain at least one special character'); } return { isValid: errors.length === 0, errors, }; }; /** * Check if a password is the default password (admin123) */ export const isDefaultPassword = (plainPassword: string): boolean => { return plainPassword === 'admin123'; };