import zipfile
import itertools
# 构造所有密码元素如果有其他特殊字符也可以自己添加
lis= ['1', '2', '3', '4','5','6','7','8','9','0',
'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']
temp = True # 用于破解成功后,停止循环的变量
# 我觉的密码最少也要四位起步吧就从四开始了
for x in range (4,17):
if temp:
def keyword():
key1 = itertools.product(lis,repeat=x)
key2 = (''.join(i) for i in key1)
return key2
def trypassword (password):
try:
ZIPFILE = zipfile.ZipFile(r'C:\Users\Lenovo\Desktop\java.zip') # 要破解的文件
ZIPFILE.extractall(path=r'C:\Users\Lenovo\Desktop',pwd=password.encode('utf-8')) # 解压到哪个路径下
print(f"解压成功,正确密码为:{password}") # 解压成功,并打印出正确密码
global temp # 声明为全局变量,没有声明,重新赋值无效
temp = False # 解压成功,停止循环
return True
except:
print(f"解压失败,尝试密码为:{password}")
return False
#用trypassword函数返回的True或者Flase来判定程序是否终止。
for p in keyword() :
if trypassword(p):
break
05-22
2750
03-30
699
06-03
9万+
10-27
838