kanellov / password-strength-validator
密码强度验证器
1.0.0
2017-11-12 23:58 UTC
Requires
- php: ^5.3 || ^7.0
Requires (Dev)
Suggests
- zendframework/zend-validator: Needed to support PasswordStrength Zend Validator
This package is not auto-updated.
Last update: 2024-09-15 03:24:07 UTC
README
通过检查密码是否包含数字、符号和不同大小写的字母来验证密码强度是否足够。
安装
使用composer安装
$ composer require kanellov/password-strength-validator
描述
此包提供密码强度验证器。它可以自定义以检查以下内容:
- 密码至少包含一个数字字符
- 密码至少包含一个大写字母字符
- 密码至少包含一个小写字母字符
- 密码至少包含一个符号字符
- 密码至少包含一个数字或符号字符
此外,在验证符号时,您可以排除一些符号(见[排除符号字符](#Excluding symbol characters))。
使用方法
函数
require 'vendor/autoload.php'; // force password to contain at least one digit and one uppercase char $flags = KNLV_PWD_CONTAIN_DGT | KNLV_PWD_CONTAIN_UC; $password = "somePasswordNotContainingDigits"; $code = 0; $message = ''; $is_valid = true; try { \Knlv\password_strength($password, $flags); } catch(\ErrorException $e) { $is_valid = false; $code = $e->getCode(); $message = $e->getMessage(); } var_dump($is_valid, $code, $message); /* --- RESULTS --- * bool(false) * int(1) * string(50) "Password must contain at least one digit character" */
Zend 验证器
为了将此库作为Zend验证器使用,必须安装zendframework/zend-validator
包。
$ composer require zendframework/zend-validator
require 'vendor/autoload.php'; use \Knlv\Validator\PasswordStrength; $password = "somePasswordNotContainingDigits"; $validator = new PasswordStrength(array('flags' => KNLV_PWD_CONTAIN_DGT | KNLV_PWD_CONTAIN_UC)); $is_valid = $validator->isValid($password); $messages = $validator->getMessages(); var_dump($is_valid, $messages); /* --- RESULTS --- * bool(false) * array(1) { * [1]=> * string(50) "Password must contain at least one digit character" * } */
排除符号字符
当使用带有KNLV_PWD_CONTAIN_SYM
或KNLV_PWD_CONTAIN_DGT_OR_SYM
标志的\Knlv\password_strength
函数时,它会检查密码是否至少包含一个!"#$&'()*+,-./:;<=>?@[\\]^_`{|}~
符号字符。
如果您不想密码包含某些符号,可以通过传递一个额外的参数来排除它们。例如,以下示例展示了如何排除验证中的@
和!
符号。
require 'vendor/autoload.php'; // force password to contain at least one symbol char $flags = KNLV_PWD_CONTAIN_SYM; $password = "p@ssword!"; $exclude = "@!"; // exclude @ and ! symbols $code = 0; $message = ''; $is_valid = true; try { \Knlv\password_strength($password, $flags, $exclude); } catch(\ErrorException $e) { $is_valid = false; $code = $e->getCode(); $message = $e->getMessage(); } var_dump($is_valid, $code, $message); /* --- RESULTS --- * bool(false) * int(8) * string(51) "Password must contain at least one symbol character" */ // Using validator $password = "p@ssword!"; $validator = new \Knlv\Validator\PasswordStrength(array( 'flags' => KNLV_PWD_CONTAIN_SYM, 'excludedSymbols' => '@!', )); $is_valid = $validator->isValid($password); $messages = $validator->getMessages(); var_dump($is_valid, $messages); /* --- RESULTS --- * bool(false) * array(1) { * [8]=> * string(51) "Password must contain at least one symbol character" * } */
许可证
GNU通用公共许可证版本3。有关更多信息,请参阅许可证文件。