customergauge / password
Installs: 11 584
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 6
Forks: 0
Open Issues: 0
Requires
- php: >=7.4
Requires (Dev)
- doctrine/coding-standard: ^8.0
- phpstan/phpstan: ^0.12.64
- phpunit/phpunit: ^9.5
README
Password Strength Library 🔒
This library is used to validade the strength of a password. It's composed by a set of Rules that can be used individualy or aggregated by a rule chain.
Installation
composer require customergauge/password
Usage
Single Rule
use Customergauge\Password\Rule\Lowercase; use Customergauge\Password\Exception\InvalidPassword; $validate = new Lowercase; $password = "UPPERCASE"; try { $validate($password); } catch (InvalidPassword $e) { echo $e->getMessage(); } // output: Password should have at least 1 lowercase character(s) but 0 found.
Rule Chain
use Customergauge\Password\Rule\Lowercase; use Customergauge\Password\Rule\Uppercase; use Customergauge\Password\Rule\Length; use Customergauge\Password\RuleChain; use Customergauge\Password\Exception\InvalidPassword; $validate = new RuleChain( new Lowercase(2), new Uppercase(2), new Length(10), new Digit(3) ); $password = "ABcd00efgh"; try { $validate($password); } catch (InvalidPassword $e) { echo $e->getMessage(); } // output: Password should have at least 3 digit character(s) but 2 found.
Persist Rule Chain
Use PersistRuleChain class when you want to continue the execution even if a rule throws an InvalidPassword exception.
use Customergauge\Password\Rule\Lowercase; use Customergauge\Password\Rule\Uppercase; use Customergauge\Password\Rule\Length; use Customergauge\Password\RuleChain; use Customergauge\Password\Exception\InvalidPassword; $validate = new PersistRuleChain( new Lowercase(2), new Uppercase(2), new Length(10), new Digit(3) ); $password = "ABcd00efgh"; if ($validate($password)) { echo "valid"; } else { echo "invalid"; // It is possible to get all exceptions using $validate->exceptions(); } // output: invalid
Contributing
Contributions are always welcome, please have a look at our issues to see if there's something you could help with.
License
Password Strength Library is licensed under LGPLv3 license.