2017-05-06 95 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("") 

我的目標是得到它的隨機生成的字母和把它們粘在一起,使密碼的長度,並做到這一點,直到它找到的密碼。每次我運行它時,它都會使命令提示符看起來像是Matrix的東西。有什麼我做錯了嗎?

P.S.我正在這樣做,看看如何破解密碼。我無意竊聽別人的帳戶。

+0

您正在打印所有猜測,因爲'print(guess)'在while循環中。如果你不想這樣做,不要打印所有的猜測。 –

+0

但是,所有的猜測都不是密碼的長度,即使只有3個字母,也不能猜出密碼。 – RugbugRedfern

+0

我想你想在每個while循環開始時重置你的猜測爲空字符串 –

回答

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