
可以自定义密码进行破解,也就是说你的字典足够大,密码一定是可以被破解的,16G密码本和密码生成器私信发送哦!
按惯例,上代码
1、导入对应模块

2、 画界面


3、逻辑代码


附完整代码
import os
import tkinter
import zipfile# 创建一个主窗口
root = tkinter.Tk()
root.title('压缩包破解器')
root.geometry('640x480')# 加载zip文件
def load_file():fname = tkinter.filedialog.askopenfilename()if fname:entry_name.delete(0, tkinter.END)entry_name.insert(0, fname)# 设置字典
def set_dictionary():fname = tkinter.filedialog.askopenfilename()if fname:entry_dictionary.delete(0, tkinter.END)entry_dictionary.insert(0, fname)# 破解zip文件
def crack():fname = entry_name.get()if not os.path.isfile(fname):tkinter.messagebox.showerror('错误', '请选择一个zip文件!')returndictionary = entry_dictionary.get()if not os.path.isfile(dictionary):tkinter.messagebox.showerror('错误', '请选择一个字典文件!')returnpassword = Nonewith open(dictionary, 'r') as fp:for line in fp.readlines():password = line.strip('\n')try:zf = zipfile.ZipFile(fname)zf.extractall(path='.', pwd=password.encode())tkinter.messagebox.showinfo('成功', '破解成功,密码是:%s' % password)breakexcept:passif not password:tkinter.messagebox.showerror('失败', '字典中没有正确的密码!')# 布局
frame_name = tkinter.Frame(root)
frame_name.pack(fill=tkinter.X, padx=10, pady=10)lbl_name = tkinter.Label(frame_name, text='压缩包:')
lbl_name.pack(side=tkinter.LEFT, padx=10, pady=10)entry_name = tkinter.Entry(frame_name, width=50)
entry_name.pack(fill=tkinter.X, padx=10, pady=10)btn_name = tkinter.Button(frame_name, text='选择', command=load_file)
btn_name.pack(side=tkinter.RIGHT, padx=10, pady=10)frame_dictionary = tkinter.Frame(root)
frame_dictionary.pack(fill=tkinter.X, padx=10, pady=10)lbl_dictionary = tkinter.Label(frame_dictionary, text='字典:')
lbl_dictionary.pack(side=tkinter.LEFT, padx=10, pady=10)entry_dictionary = tkinter.Entry(frame_dictionary, width=50)
entry_dictionary.pack(fill=tkinter.X, padx=10, pady=10)btn_dictionary = tkinter.Button(frame_dictionary, text='选择', command=set_dictionary)
btn_dictionary.pack(side=tkinter.RIGHT, padx=10, pady=10)btn_crack = tkinter.Button(root, text='破解', command=crack)
btn_crack.pack(fill=tkinter.X, padx=10, pady=10)# 进入消息循环
tkinter.mainloop()


















