【发布时间】:2011-01-18 04:00:16
【问题描述】:
我决定编写一个蛮力函数来向人们展示密码的脆弱性。现在,我可以向他们展示查找密码所经过的列表,但我如何告诉他们花了多长时间? 这是代码:
#!/usr/bin/python 导入迭代工具 lower_a = ['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'] upper_a = ['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'] num = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] alllet = [] alllet = lower_a + upper_a# + num pwd = raw_input("什么密码?\t\t") 尝试: 对于范围内的 r (1, len(pwd)+1): 对于 itertools.product(alllet, repeat=r) 中的 s: 打印''.join(s) 如果''.join(s) == pwd: 引发名称错误() 除了键盘中断: 打印“嘿!你阻止了我!” 除了名称错误: 打印“完成!破解!” print "\n\n密码是:\t" + ''.join(s) + "\n\n"【问题讨论】:
-
顺便提一下,
from string import printable可能会有所帮助。 -
只是给您的
lower_a、upper_a和num列表的提示:import string并使用list(string.lowercase)、list(string.uppercase)和list(string.digits). -
string.printable = string.lowercase + string.uppercase + string.digits + string.punctuation + string.whitespace
标签: python time brute-force combinations