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.
composer require customergauge/password
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.
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.
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
Contributions are always welcome, please have a look at our issues to see if there's something you could help with.
Password Strength Library is licensed under LGPLv3 license.