先是用python写了一个,原理网上都有,我加了个界面,方便使用,同目录下放个pwd.txt,里面是密码列表,可以网上下载一些,或自己生成一个。

import zipfile
from threading import Thread
from tkinter import *
from tkinter import filedialog
from tkinter import ttkdef extractfile(zFile,password):# noinspection PyBroadExceptiontry:global flagzFile.extractall(pwd=password.encode("utf=8"))print("password="+password)lb2.config(text="密码:"+password)flag=Trueexcept Exception as e:passdef fn(zipPath,pwdPath):zFile = zipfile.ZipFile(zipPath)passFile = open(pwdPath)n=0lines=passFile.readlines()passFile.close()num=len(lines)print(num)for line in lines:password = line.strip('\n')t = Thread(target=extractfile(zFile , password))t.start()n+=1if(n%1000==0):pb.config(value=n*100/num)window.update()if(flag):pb.config(value=100)breakzFile.close()if(not(flag)):pb.config(value=100)lb2.config(text="密码未找到")def selectZIP():global myfilepathglobal flagflag=Falsemyfilepath=filedialog.askopenfilename()if len(myfilepath)>0:lb.config(text=myfilepath)lb2.config(text="密码:")def getPwd():global myfilepathfn(myfilepath,"pwd.txt")global myfilepathglobal flag
flag=Falseglobal mynummynum=0window=Tk()
window.title('hackZip')
window.geometry('300x200')
window.resizable(0, 0)btn1=Button(window,text="选择zip",command=selectZIP)
btn1.place(x=200,y=30)btn1=Button(window,text="暴力破解",command=getPwd)
btn1.place(x=200,y=60)lb=Label(window,text='..')
lb.place(x=20,y=10)lb2=Label(window,text='密码:')
lb2.place(x=20,y=100)pb = ttk.Progressbar(window, length = 280, value=0, mode = "determinate")
pb.place(x=10,y=130)window.mainloop()
这样就是在密码本里一个个密码试,知道找到正确密码为之。
想着用显卡来加速,找到了一个hashcat的软件,不怎么会用,有一些问题。
后来找到个johntheripper,同样也能破解zip
https://www.openwall.com/john/

下载下来
进cmd,进入文件夹run下面, 如要破解的是d:\test1.zip文件,同过命令 zip2john d:\test1.zip >hash 得到一个叫hash的文件

下面破解,输入john hash

用了9秒

破解出来密码是11223344
同时也支持用自己的密码本破解
命令如 john -w=d:\pwd.txt hash
已经破解过的可以通过 john --show hash 显示密码



















