Skip to content
This repository has been archived by the owner on Jun 13, 2019. It is now read-only.

Latest commit

 

History

History
59 lines (41 loc) · 1.65 KB

README.md

File metadata and controls

59 lines (41 loc) · 1.65 KB

Navajo

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

Navajo is named in honor of the famed code talkers of the Second World War.

Usage

Validating Password

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]);
    }
}

Available Validation Rules

  • Allowed Characters
  • Required Characters (e.g. lowercase, uppercase, decimal, symbol)
  • Non-Dictionary Word
  • Minimum / Maximum Length
  • Predicate Match
  • Regular Expression Match
  • Block Evaluation

Evaluating Password Strength

Password strength is evaluated in terms of information entropy.

NJOPasswordStrength strength = [NJOPasswordStrengthEvaluator strengthOfPassword:password];
NSLog(@"%@", [NJOPasswordStrengthEvaluator localizedStringForPasswordStrength:strength]);

License

MIT

Contact

Mattt (@mattt)