2017-11-19 7 views
-4

私はパスワード強度チェッカーをPythonで作成しています。パスワードに数字、小文字、大文字が含まれているかどうかを確認する必要があります。 1種類のみ弱、2種類は中、3種類とも強くなります。配列内の1文字の文字列が別の文字列内にあるかどうかをチェックする方法

パスワードはpassword2として入力され、すべての文字(下位と上位の別々)と0-9の配列を3つの配列の文字列として個別に入力して作成しました。

何か助けていただければ幸いです。 乾杯、 ジェームズ

+0

正規表現を使用するか、unicodedataを使用してユニコードデータベースを試してください –

+1

ようこそ。残念ながら、これはディスカッションフォーラム、チュートリアルまたはコード作成サービスではありません。時間をかけて[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

答えて

-1

あなたはある方向に向ける簡単なアプローチ。

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

ほとんどのエラーをソートしましたが、入力が何であれ0が得られます。私は 'print(strength(password2))'を使って答えを出力しています@schwobaseggl – James

-1

私は

# 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モジュールと内蔵の anysum機能だけでなく型の強制など bools合計するようないくつかのutilsのを使用しています
関連する問題