私はパスワード強度チェッカーをPythonで作成しています。パスワードに数字、小文字、大文字が含まれているかどうかを確認する必要があります。 1種類のみ弱、2種類は中、3種類とも強くなります。配列内の1文字の文字列が別の文字列内にあるかどうかをチェックする方法
パスワードはpassword2として入力され、すべての文字(下位と上位の別々)と0-9の配列を3つの配列の文字列として個別に入力して作成しました。
何か助けていただければ幸いです。 乾杯、 ジェームズ
私はパスワード強度チェッカーをPythonで作成しています。パスワードに数字、小文字、大文字が含まれているかどうかを確認する必要があります。 1種類のみ弱、2種類は中、3種類とも強くなります。配列内の1文字の文字列が別の文字列内にあるかどうかをチェックする方法
パスワードはpassword2として入力され、すべての文字(下位と上位の別々)と0-9の配列を3つの配列の文字列として個別に入力して作成しました。
何か助けていただければ幸いです。 乾杯、 ジェームズ
あなたはある方向に向ける簡単なアプローチ。
from string import ascii_uppercase as u, ascii_lowercase as l, digits as d
def strength(password):
return sum(any(c in chars for c in password) for chars in (u, l, d))
>>> strength('abc')
1
>>> strength('abc123')
2
>>> strength('abcD123')
3
ほとんどのエラーをソートしましたが、入力が何であれ0が得られます。私は 'print(strength(password2))'を使って答えを出力しています@schwobaseggl – James
私は
# s is password input
has_num = any(map(str.isalnum, s)) # True or False
has_lower = any(map(str.islower, s))
has_upper = any(map(str.isupper, s))
n_types = sum((has_num, has_lower, has_upper)) # type count
それを正しく理解しているかどうかわからない:これは
string
モジュールと内蔵の
any
と
sum
機能だけでなく型の強制など
bools
合計するようないくつかのutilsのを使用しています
正規表現を使用するか、unicodedataを使用してユニコードデータベースを試してください –
ようこそ。残念ながら、これはディスカッションフォーラム、チュートリアルまたはコード作成サービスではありません。時間をかけて[ask]とそのページの他のリンクを読んでください。例を練習して[チュートリアル](https://docs.python.org/3/tutorial/index.html)を試してみてください。 Pythonが提供するツールについて紹介し、問題解決のためのアイデアを得ることさえできます。 [なぜ誰かが私を助けることができますか?]は実際の質問ではありませんか?](https://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-actual-question ) – wwii