我自己的蛮力

时间:2015-03-09 19:23:54

标签: python python-3.x brute-force

所以我试图创建我自己的暴力应用程序类型。 我知道已经有关于如何做到这一点的版本但是我想要某种方式的帮助我正在做它

我所做的是创建一个循环遍历值数组的循环

poss = ["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", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]

给出了所有可能的字符(不包括特殊字符),我稍后会添加它们。

我每次设置一个默认密码只是为了测试目的,这将改为我以后试图破解的格式。

psw = str(input("Password?"))

所以我做的是做一个循环遍历poss中的所有值,如果它等于密码,它将打破并打印它是正确的

for i in poss:
    print(i)
    if i is psw:
        print("\"" +i+ "\"", "Is the correct password!")
        break

这里的代码很好..如果密码是一个字符。

但现在我面临着添加角色的问题。 例如,如果我循环到poss结束并且它仍然没有匹配psw我如何使它添加小数位,例如,一旦尝试“0”我希望它重新启动但是有一个字符之前喜欢“aa”,然后是“ab”等。

UPDATE:

我尝试添加更多列表:

possa = []
possb = []
possc = []
possd = []

然后我继续循环播放值:

for i in poss:
    possa.append("a"+str(i))
    possb.append("b"+str(i))
    possc.append("c"+str(i))
    possd.append("d"+str(i))

这是一种方法,但只要我必须为poss中的每个角色执行此操作,然后再对三个字符执行此操作,例如“aaa”

1 个答案:

答案 0 :(得分:0)

from itertools import product
from string import ascii_lowercase, digits

possible_chars = ascii_lowercase + digits

for password_length in range(1, 9):  # up to 8 characters
    for chars in product(possible_chars, repeat=password_length):
        guess = "".join(chars)
        # test guess