1. Go to this page and download the library: Download ancientec/password-policy library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ancientec / password-policy example snippets
use Ancientec\PasswordPolicy\PasswordPolicy;
$policy = ["LengthMin" => 6, //minimum length of password
"LengthMax" => 12, //maximum length of password
"CharDigitMin" => 1, //minimum number of digits
"CharUpperMin" => 1,//minimum number of upper case characters
"CharLowerMin" => 1,//minimum number of lower case characters
"CharSpecial" => "~!@#$%^&*()-=_+",//defination of special characters
"CharSpecialMin" => 1,//minimum number of special characters
"MustContain" => ['1','a'], //must contain strs, case sensitive
"MustNotContain" => ['admin','password'],//must not contain strs, case sensitive
"CustomValidate" => function($password) { return "";}, //return error string if false, return "" if true
];
/**
* @param array $policy
* @param array $errStrings
* @param string $name
*
*/
$passwordPolicy = new PasswordPolicy($policy, [], "policy_admin");
//return false:
$passwordPolicy->isValid("password"); //false
//return true:
$passwordPolicy->isValid("Password123!"); //true
//return empty array if the password is passed:
$passwordPolicy->Validate("Password123!"); // empty []
//return array of error strings:
$passwordPolicy->Validate("");
/* result:
["ERR_LengthMin" => "minimum length of 6",
"ERR_LengthMax" => "maximum length of 12",
"ERR_CharDigitMin" => "at least 1 of digit(s)",
"ERR_CharUpperMin" => "at least 1 of upper case character",
"ERR_CharLowerMin" => "at least 1 of lower case character",
"ERR_CharSpecial" => "at least 1 of special character ~!@#$%^&*()-=_+",
"ERR_MustContain" => ["must contain 1","must contain a"],
"ERR_All" => [
"maximum length of 12",
"at least 1 of digit(s)",
"at least 1 of upper case character",
"at least 1 of lower case character",
"at least 1 of special character ~!@#$%^&*()-=_+",
"must contain 1",
"must contain a"
]
];
*/
//only check minimum length
$passwordPolicy = new PasswordPolicy(["LengthMin" => 6], [], "policy_admin");
//create a new instance
$passwordPolicyUser = new PasswordPolicy(["LengthMin" => 12], [], "policy_user");
//or use static::method
PasswordPolicy::registerPolicy(["LengthMin" => 32, "LengthMax" => 32], [], "policy_api");
//policy is still policy_admin:
$passwordPolicy->isValid("Password123!");//return true
//change current policy name to policy_user
$passwordPolicy->setPolicyName("policy_user");
//policy_user validate:
$passwordPolicy->isValid("Password123!");//return false
//assign policy name to validate:
$passwordPolicy->isValid("Password123!", "policy_admin");//return true
//policy is policy_user
$passwordPolicyUser->isValid("Password123!");//return false
//assign policy name to validate:
$passwordPolicy->isValid("Password123!", "policy_user");//return false
//assign policy name to validate:
$passwordPolicy->isValid("Password123!", "policy_api");//return false
$errorStrings = PasswordPolicy::getErrorStringsDefault();
/* default strings:
["ERR_LengthMin" => "minimum length should be {0}",
"ERR_LengthMax" => "maximum length should be {0}",
"ERR_CharDigitMin" => "at least {0} of digit(s)",
"ERR_CharUpperMin" => "at least {0} of upper case character",
"ERR_CharLowerMin" => "at least {0} of lower case character",
"ERR_CharSpecial" => "at least {0} of special character {1}",
"ERR_MustContain" => "must contain {0}",
"ERR_MustNotContain" => "must not contain {0}",
"ERR_NoDefinedPolicies" => "Missing defined policies",
]
*/
$errorStrings["ERR_LengthMin"] = "Minimum length must be {0}";
$passwordPolicy = new PasswordPolicy(
["LengthMin" => 6, "LengthMax" => 6],$errorStrings, "policy_user");
//alertnatively:
$passwordPolicy->setErrorStringsWithName($errorStrings, "policy_user");
$passwordPolicy->validate("");
/* result:
[
"ERR_LengthMin" => "minimum length must be 6",
"ERR_All" => ["minimum length must be 6"],
]
*/
/*
$error : string, type of error
$values: string[], policy myLanguageStrings = ["ERR_LengthMin" => "minimum length must be {0}",
"ERR_LengthMax" => "maximum length must be {0}",
"ERR_CharDigitMin" => "at least {0} of digit(s)",
"ERR_CharUpperMin" => "at least {0} of upper case character",
"ERR_CharLowerMin" => "at least {0} of lower case character",
"ERR_CharSpecial" => "at least {0} of special character {1}",
"ERR_MustContain" => "must contain {0}",
"ERR_MustNotContain" => "must not contain {0}",
"ERR_NoDefinedPolicies" => "Missing defined policies",
];
switch($error) {
case 'ERR_CharSpecial':
return sprintf($myLanguageStrings[$error],$values[1],$values[0]);
case 'ERR_NoDefinedPolicies':
return $myLanguageStrings[$error];
default:
return sprintf($myLanguageStrings[$error],$values[1],$values[0]);
}
}
$policy = [
"LengthMin" => 6,
"LengthMax" => 6,
"ErrorStringFormat" => $ErrorStringFormat];
$passwordPolicy = new PasswordPolicy(
["LengthMin" => 6, "LengthMax" => 6],$errorStrings);
$passwordPolicy->validate("");
/* result:
[
"ERR_LengthMin" => "minimum length must be 6",
"ERR_All" => ["minimum length must be 6"],
]
*/
$customValidate = function($password) {
//password is not ok:
if(strpos($password, "abc") !== 0) {
return "password should prefix abc";
}
//password is ok:
return "";
};
$passwordPolicy = new PasswordPolicy([
"LengthMin" => 6,
"CustomValidate" => $customValidate
]);
$passwordPolicy->isValid("password"); //return false
$passwordPolicy->validate("password");
/*
result:
[
"ERR_CustomValidate" => "password should prefix abc",
"ERR_All" => ["password should prefix abc"],
]
*/
$passwordPolicy->isValid("abcPassword"); //return true
$passwordPolicy->validate("abcPassword"); //result: []
/*
return ["ERR_LengthMin" => "minimum length should be {0}",
"ERR_LengthMax" => "maximum length should be {0}",
"ERR_CharDigitMin" => "at least {0} of digit(s)",
"ERR_CharUpperMin" => "at least {0} of upper case character",
"ERR_CharLowerMin" => "at least {0} of lower case character",
"ERR_CharSpecial" => "at least {0} of special character {1}",
"ERR_MustContain" => "must contain {0}",
"ERR_MustNotContain" => "must not contain {0}",
"ERR_NoDefinedPolicies" => "Missing defined policies",
];
*/
PasswordPolicy::getErrorStringsDefault();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.