Password Validator & Strength Evaluator
This library is no longer maintained. Use Password Autofill Rules in iOS 12, macOS Mojave, and Safari to generate strong random passwords according to your own validation criteria.
Navajo is named in honor of the famed code talkers of the Second World War.
NSString *password = @"abc123"
NJOPasswordValidator *validator = [NJOPasswordValidator standardValidator];
NSArray *failingRules = nil;
BOOL isValid = [validator validatePassword:password
failingRules:&failingRules];
if (!isValid) {
for (id <NJOPasswordRule> rule in failingRules) {
NSLog(@"- %@", [rule localizedErrorDescription]);
}
}
- Allowed Characters
- Required Characters (e.g. lowercase, uppercase, decimal, symbol)
- Non-Dictionary Word
- Minimum / Maximum Length
- Predicate Match
- Regular Expression Match
- Block Evaluation
Password strength is evaluated in terms of information entropy.
NJOPasswordStrength strength = [NJOPasswordStrengthEvaluator strengthOfPassword:password];
NSLog(@"%@", [NJOPasswordStrengthEvaluator localizedStringForPasswordStrength:strength]);
MIT
Mattt (@mattt)