2017-05-06 6 views
0

私のコードはPythonのパスワードクラッカー

from random import * 
guess = "" 
password = input("Password: ") 
letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] 
while (guess != password): 
    for letter in password: 
     guessletter = letters[randint(0, 25)] 
     guess = str(guessletter) + str(guess) 
    print(guess) 
print("Password guessed!") 
input("") 

私の目標は、それがランダムに文字を生成するために取得し、パスワードの長さを作るためにそれらを一緒に固執し、それがパスワードを見つけるまでこれを行うことです。私がそれを実行するたびに、コマンドプロンプトがマトリックスから何かのように見えるだけです。私が間違っていることはありますか?

P.S.パスワードを解読することがどれほど難しいかを知るためにこれをやっています。私は他人のアカウントにハッキングするつもりはありません。

+0

'print(guess)'が 'while'ループにあるので、あなたの推測をすべて表示しています。あなたがそれをしたくなければ、すべての推測を印刷しないでください。 –

+0

しかし、すべての推測はパスワードの長さではなく、パスワードが3文字であっても決して推測できません。 – RugbugRedfern

+0

ループの途中で空の文字列に推測をリセットしたいと思います。 –

答えて

0

すでに述べたように、あなたはあなたの推測を適切にリセットしていません。

また、同じ推測を何度も繰り返しているため、パスワードを解読する方法ではありません。あなたは何とか自分自身を繰り返すことなく、すべての可能性を乗り越える必要があります。

パスワードが4文字であるとすれば、あなたはaaaa、次にaaab、zzzzから始めることができます。別の順序、ランダムな順序で行うこともできますが、各ケースを一度だけテストする必要があります。

+0

あなたがパスワードについて何も知らないのなら、アルファベット順に行くことは私が思うランダムに行くほど効果的です! – 7raiden7

+1

実際、どちらも最高です。クラッキングツールは、統計情報に基づいた方法を使用して、パスワードを最初に見つける可能性の高い順番を定義します。 – Michel

+0

どうすればいいですか? (体系的な方法) – RugbugRedfern

2

"推測"をリセットすることはありませんので、ちょうど大きくなっています。

from random import * 
guess = "" 
password = input("Password: ") 
letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] 
while (guess != password): 
    guess = "" 
    for letter in password: 
     guessletter = letters[randint(0, 25)] 
     guess = str(guessletter) + str(guess) 
    print(guess) 
print("Password guessed!") 
input("") 
+0

パスワードのサイズがわからないときはどうですか? – Lumo5