我正在尝试创建一个将对学术python项目使用蛮力的函数。密码可以限制我要传递密码,函数迭代一组字符(a-z,A-Z,0-9)尝试组合,直到找到密码。我知道这样效率很低所以对于测试我们假设密码长度为4个字符。任何开始写这个功能的帮助将不胜感激。
答案 0 :(得分:5)
gen = itertools.combinations_with_replacement(characters,password_length) #1
for password in gen: #2
check_password(password) #3
这是它的工作原理:
例如,如果characters = '01234567890'
和password_length = 2
,那么循环将贯穿组合:('0','0'), ('0','1'), ('0','2')...('0','9'),('1','0'),('1','1')...('9','9')
。
答案 1 :(得分:0)
对于预先知道的长度:
import random
a_z = "abcdefghijklmnopqrstuvwxyz_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
while password != curtry:
currenttry = random.choice(a_z)+random.choice(a_z)+random.choice(a_z)+random.choice(a_z)
随机长度:
import random
a_z = "abcdefghijklmnopqrstuvwxyz_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
while password != curtry:
leng = random.randint(4,12) #random int between 4 and 12
i = 0
curtry = "lol"
for i<leng:
curtry += random.choice(a_z)