如何创建简单的python蛮力函数?

Cli*_*int 2 python-3.x

我正在尝试创建一个将暴力用于学术python项目的函数。密码可以限制,我想输入密码,然后该函数通过一组字符(az,AZ,0-9)尝试组合,直到找到密码为止。我知道这样做效率不高,因此在测试时假设密码长度为4个字符。任何帮助开始编写此功能将不胜感激。

She*_*ena 6

gen = itertools.combinations_with_replacement(characters,password_length) #1
for password in gen:                                                      #2 
    check_password(password)                                              #3
Run Code Online (Sandbox Code Playgroud)

运作方式如下:

  • 第1行:这将创建一个生成器。它就像一个函数,可以记住它从哪里停止。查阅更多信息:http : //getpython3.com/diveintopython3/generators.html。这个特定的生成器会经历给定长度的给定字符的所有可能组合。
  • 第2行:对于for循环的每次迭代,都会调用next(gen)。这产生下一个值
  • 第三行:做你需要做的

例如,如果characters = '01234567890'和password_length = 2然后循环将通过组合运行:('0','0'), ('0','1'), ('0','2')...('0','9'),('1','0'),('1','1')...('9','9')。

  • itertools.permutations是一个更好的主意。groups_with_replacement不会对其重新排序。 (2认同)