我之前在这里曾经问过这个问题,但没有得到我一直在寻找的答案,但是我有另一种方法。所以在这里我再去一次。
((先前找到的答案的问题是,它非常高效,有点太过效率。我无法计算比较,我希望它成为查找密码的最简单的方法,以便我可以实现一个评分系统。)
我正在寻找一个密码评定程序,该程序根据时间长度和程序进行比较的次数来评定密码,以便找到正确的密码。
我正在寻找使用多种不同的方法来破解输入的方法,例如:将输入内容与常用字词的数据库进行比较,并生成从第一个字符开始的所有可能的密码。
问题:
我找不到从列表中的一个元素开始的方法,我们将其称为A
。
运行A
至chr(32) - chr(127)
('space'
-'~'
),然后将第二个元素添加到名为B
的列表中。
对于第二个循环,设置A = chr(32)
,然后将通过B
运行chr(32) - chr(127)
。然后A
将变成chr(33)
,并且B
将贯穿所有字符,依此类推。直到比较了所有可能的选项为止,然后对于下一个循环,它将在列表中添加另一个元素,并从chr(32)
,chr(32)
,chr(32-127)
开始继续搜索。继续此模式,直到找到正确的密码。
这是我能找到的最可行的东西(我知道这很糟糕)。
while ''.join(passCheck) != ''.join(usrPassword) :
for i in range(0, len(usrPassword)) :
if ''.join(passCheck) != ''.join(usrPassword) :
passCheck.append(' ')
for j in range(32, 127) :
if ''.join(passCheck) != ''.join(usrPassword) :
passCheck[i] = chr(j)
for k in range(0, len(passCheck)) :
for l in range(32, 127) :
if ''.join(passCheck) != ''.join(usrPassword) :
passCheck[k] = chr(l)
print(passCheck)
如果按字母顺序检查,那么只需要一个循环就可以计算它需要检查多少次
password = 'ABC'
rate = 0
for char in password:
rate = rate*95 + (ord(char)-31)
print(rate)