Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的密码强度检查_Php_Validation_Passwords - Fatal编程技术网

PHP中的密码强度检查

PHP中的密码强度检查,php,validation,passwords,Php,Validation,Passwords,我正在尝试创建密码检查脚本。我已经检查过电子邮件(不允许使用的字符),如下所示: public function checkEmail($email) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) return true; else return false; } 因此,我正在寻找一个密码验证函数,它可以检查密码是否至少有一个字母数字字符、一个数字字符和至少8个字符,并提供错误消息。公

我正在尝试创建密码检查脚本。我已经检查过电子邮件(不允许使用的字符),如下所示:

  public function checkEmail($email)
  {
    if (filter_var($email, FILTER_VALIDATE_EMAIL))
      return true;
    else
      return false;   
  }
因此,我正在寻找一个密码验证函数,它可以检查密码是否至少有一个字母数字字符、一个数字字符和至少8个字符,并提供错误消息。

公共函数checkPassword($pwd,&$errors){
public function checkPassword($pwd, &$errors) {
    $errors_init = $errors;

    if (strlen($pwd) < 8) {
        $errors[] = "Password too short!";
    }

    if (!preg_match("#[0-9]+#", $pwd)) {
        $errors[] = "Password must include at least one number!";
    }

    if (!preg_match("#[a-zA-Z]+#", $pwd)) {
        $errors[] = "Password must include at least one letter!";
    }     

    return ($errors == $errors_init);
}
$errors\u init=$errors; 如果(strlen($pwd)<8){ $errors[]=“密码太短!”; } 如果(!preg_match(#[0-9]+#“,$pwd)){ $errors[]=“密码必须至少包含一个数字!”; } 如果(!preg_match(#[a-zA-Z]+#“,$pwd)){ $errors[]=“密码必须至少包含一个字母!”; } 返回($errors==$errors\u init); }

编辑后的版本:

到目前为止您尝试了什么?您遇到的具体问题是什么?
strlen()
是最好的强度检查。繁琐的密码。您可以将函数缩减为
return!!过滤变量($email,filter\u VALIDATE\u email)@Treffynnon到目前为止没有什么有用的。。。strlen()将替换字符,而不是检查字符?不,strlen()只是检查字符串的长度我认为最后应该有[a-zA-Z],对吗?实际上,Byakugan的定义是持续一个字母数字,但我认为他包含1个字母,1个数字,strlen>=8(你在这里做了,除了A-z)。如果有错误,你可以返回一个JSON对象,在代码和消息中描述错误,比如:返回JSON_encode(数组(“ok”=>1,“msg”=>"length@Byakugan-使用通过引用传递的第二个参数,这样函数可以在必要时将消息放在那里。这比使用布尔值或字符串的返回值(错误消息)更健壮.按照martinstoeckli的建议修复了a-zA-Z并添加了错误消息。@Jeroen-因为您不知道传递给函数时,
$errors
包含什么,所以您应该用null初始化它。否则就可以了。