压缩包密码破解器

 可以自定义密码进行破解,也就是说你的字典足够大,密码一定是可以被破解的,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文件!')
        return
    dictionary = entry_dictionary.get()
    if not os.path.isfile(dictionary):
        tkinter.messagebox.showerror('错误', '请选择一个字典文件!')
        return
    password = None
    with 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)
                break
            except:
                pass
    if 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()

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AK-黑龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值