2017-05-06 93 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