今日のデジタル時代では、ほとんどの人が個人情報を保護するために 1 つ以上のパスワードを持っています。ただし、パスワードが弱いと簡単に解読されたり、ハッキングされたりして、個人情報の漏洩につながることがよくあります。したがって、強力なパスワードを設定することが非常に重要です。 Python は、正規表現を含む、セキュリティおよびパスワード関連の操作のためのツールとライブラリを多数提供します。 Python の正規表現を使用すると、基本的なパスワード強度チェックを実行できるため、弱いパスワードの使用を回避し、個人情報のセキュリティを向上させることができます。
1. パスワードの強度チェック
安全で信頼性の高いパスワードは、通常、次の 3 つの要件を満たす必要があります:
1. 長さ: パスワードの長さは少なくとも 8 文字である必要があります。 12人以上、できれば12人以上。
2. さまざまな種類の文字を含める: 数字、大文字と小文字、特殊文字など、さまざまな種類の文字を含めることをお勧めします。
3. 一般的な辞書の単語、名前、誕生日などの使用を避けます: 珍しい単語の組み合わせや合理的な意味を持つパスワードの組み合わせを使用します。
Python では、正規表現を使用して上記のルールをチェックし、パスワードの強度をチェックできます。
2. Python 正規表現を使用してパスワードの強度を確認する
まず、正規表現を含む変数を準備する必要があります。簡単な正規表現の例を次に示します。
import re password_regex = r'^S*(?=S{8,})(?=S*[a-z])(?=S*[A-Z])(?=S*[d])(?=S*[W])S*$'
パスワードの正規表現を作成する主な手順は、パスワードの長さ、大文字と小文字、数字、特殊記号をそれぞれチェックすることです。
1. パスワードの長さ
正規表現 (?=S{8,})
を使用します。これは、少なくとも 8 文字である必要があることを意味します。このうち、(?=...)
は前方事前チェックで、以下の文字が条件を満たすかどうかをチェックすることを意味します。 S
は空白以外の文字を表し、S{8,}
は 8 つ以上の空白以外の文字を表します。
2. 大文字と小文字
正規表現 (?=S*[a-z])(?=S*[A-Z])
を使用して、パスワードには、少なくとも 1 つの小文字と 1 つの大文字が含まれている必要があります。このうち、[a-z]
は小文字に一致し、[A-Z]
は大文字に一致します。 (?=S*[a-z])
と (?=S*[A-Z])
は、それぞれ、パスワードに少なくとも 1 つの小文字と 1 つの大文字が含まれている必要があることを示します。
3. 数字と特殊文字
正規表現 (?=S*[d])(?=S*[W])
を使用して、パスワードが少なくとも 1 つの数字と 1 つの特殊文字が含まれている必要があります。このうち、[d]
は数字に一致し、[W]
は英数字以外の文字に一致します。 (?=S*[d])
と (?=S*[W])
はそれぞれ、パスワードに少なくとも 1 つの数字と 1 つの特殊文字が含まれている必要があることを示します。
4. パスワードの完全な一致
^S*$
を使用して、パスワードが空白以外の文字で構成されている必要があることを示します。 #^ は文字列の先頭を表し、
S* は空白以外の文字を表し、
#$ は文字列の末尾を表します。
passwords = ['Qwe@1234', 'Pa$$w0rd', 'Password123', 'abcd', '12345678'] for password in passwords: result = re.match(password_regex, password) if result is None: print(password, '不符合要求') else: print(password, '符合要求')
Qwe@1234 符合要求 Pa$$w0rd 符合要求 Password123 符合要求 abcd 不符合要求 12345678 不符合要求
re の
search() 関数を使用してみてください。この関数は、指定されたテキスト文字列内の任意の位置を検索します。正規表現の条件を満たす最初の一致オブジェクトを検出し、そのオブジェクトの存在を (True または False ではなく) アサートします。
以上がパスワード強度チェックに Python 正規表現を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。