validatePasswordStrength method

Map<String, dynamic> validatePasswordStrength(
  1. String password
)

Validates password strength

password The password to validate Returns a map with validation results

Implementation

Map<String, dynamic> validatePasswordStrength(String password) {
  final issues = <String>[];

  if (password.length < 8) {
    issues.add('Password must be at least 8 characters long');
  }

  if (!password.contains(RegExp(r'[A-Z]'))) {
    issues.add('Password must contain at least one uppercase letter');
  }

  if (!password.contains(RegExp(r'[a-z]'))) {
    issues.add('Password must contain at least one lowercase letter');
  }

  if (!password.contains(RegExp(r'[0-9]'))) {
    issues.add('Password must contain at least one number');
  }

  if (!password.contains(RegExp(r'[!@#$%^&*(),.?\":{}|<>]'))) {
    issues.add('Password must contain at least one special character');
  }

  return {
    'isValid': issues.isEmpty,
    'issues': issues,
    'strength': _calculateStrength(password),
  };
}