kanellov/password-strength-validator

1.0.0 2017-11-12 23:58 UTC

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_SYMKNLV_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。有关更多信息,请参阅许可证文件