ホームページ  >  記事  >  バックエンド開発  >  パスワードの複雑さを検証するための PHP 正規表現方法

パスワードの複雑さを検証するための PHP 正規表現方法

WBOY
WBOYオリジナル
2023-06-24 09:09:091649ブラウズ

ネットワークのセキュリティ意識が徐々に向上するにつれて、多くの Web サイトではユーザーに複雑なパスワードの使用を要求し始めています。広く使用されているプログラミング言語である PHP には、当然のことながら、パスワードの複雑さを検証するための対応するメソッドが必要です。この記事では、PHPの正規表現を使ってパスワードの複雑さを検証する方法を紹介します。

1. パスワードの複雑さの要件

パスワードの複雑さ検証用の正規表現を設計する前に、まずパスワードの複雑さの要件を決定する必要があります。一般に、パスワードの複雑さの要件には次の側面が含まれます。

  1. パスワードの長さ: パスワードの長さは特定の値 (通常は 8 ~ 16 文字) 未満にすることはできません。
  2. 文字タイプ: パスワードには、大文字、小文字、数字、特殊文字 (!@#$%^&*()_ -=[]{}|;':",./< など) を含める必要があります。 ;> ;?).
  3. 一般的なパスワードは使用できません: パスワードに一般的なパスワードを含めることはできません (例: 123456、admin など)。

2. PHP 正規表現パスワードの複雑さを確認する方法

  1. パスワードの長さを確認する

正規表現を使用してパスワードの長さを確認するのは非常に簡単で、「.{8,16}」を使用するだけです。このうち、ドットは任意の文字が一致することを示し、中括弧内の 8 は少なくとも 8 文字が一致する必要があることを示し、16 は最大 16 文字が一致する必要があることを示します。 :

if(preg_match('/.{8,16}/',$password)){
  echo '密码长度符合要求';
}else{
  echo '密码长度不符合要求';
}

検証パスワードの文字タイプ
  1. 検証パスワードの文字タイプはより複雑で、一致する文字セットを表すために正規表現で「[]」を使用する必要があります。
//验证是否包含数字
if(preg_match('/[0-9]+/',$password)){
  $score++;
}

//验证是否包含小写字母
if(preg_match('/[a-z]+/',$password)){
  $score++;
}

//验证是否包含大写字母
if(preg_match('/[A-Z]+/',$password)){
  $score++;
}

//验证是否包含特殊字符
if(preg_match('/[!@#$%^&*()_+-=[]{}|;:'",./<>?]+/',$password)){
  $score++;
}

if($score>=3){
  echo '密码复杂度符合要求';
}else{
  echo '密码复杂度不符合要求';
}

上記のコードでは、パスワードが要件を満たしているかどうかを検証するためにいくつかの正規表現を使用しています。このうち角括弧「[]」は一致する文字セットを示しています。

共通パスワードが含まれているかどうかを確認する
  1. 共通パスワードが含まれているかどうかを確認することも必要です。比較的単純です。正規表現で「|」を使用して「or」関係を表現するだけです。具体的な実装方法は次のとおりです:
//常用密码列表
$commonPasswords = array('123456','admin','password','qwerty','12345678');

//验证密码是否为常用密码
if(preg_match('/('.implode('|', $commonPasswords).')/i', $password)){
  echo '密码为常用密码';
}else{
  echo '密码不为常用密码';
}

上記のコードでは、implode 関数を使用しています。よく使うパスワードリストの要素を縦線で結んで正規表現を作成します。このうち括弧「( )」は文字列であることを意味し、「i」は大文字と小文字を無視して一致することを意味します。

##3. 概要

PHP 正規表現を使用してパスワードの複雑さを検証する方法には、主に、パスワードの長さ、パスワードの文字タイプ、一般的に使用されるパスワードが含まれているかどうかの検証が含まれます。プログラマーは、独自のパスワードの複雑さ検証規則を設計できます。特定のニーズに応じた表現を使用できるため、パスワードのセキュリティが向上し、ユーザーの利便性も高まります。

以上がパスワードの複雑さを検証するための PHP 正規表現方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。