calculatePasswordStrength function
- String password
Calculate password strength.
Implementation
NicePasswordLevel calculatePasswordStrength(String password) {
if (password.isEmpty) return NicePasswordLevel.none;
var score = 0;
if (password.length >= 8) score++;
if (password.length >= 12) score++;
if (RegExp(r'[a-z]').hasMatch(password)) score++;
if (RegExp(r'[A-Z]').hasMatch(password)) score++;
if (RegExp(r'[0-9]').hasMatch(password)) score++;
if (RegExp(r'[!@#$%^&*(),.?":{}|<>]').hasMatch(password)) score++;
if (password.length >= 16) score++;
return switch (score) {
0 => NicePasswordLevel.none,
1 => NicePasswordLevel.weak,
2 || 3 => NicePasswordLevel.fair,
4 => NicePasswordLevel.good,
5 => NicePasswordLevel.strong,
_ => NicePasswordLevel.veryStrong,
};
}