暴力破解zip文件密码

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

暴力破解zip文件密码_第1张图片

import zipfile
from threading import Thread
from tkinter import *
from tkinter import filedialog
from tkinter import ttk

def extractfile(zFile,password):
    # noinspection PyBroadException
    try:
        global flag
        zFile.extractall(pwd=password.encode("utf=8"))
        print("password="+password)
        lb2.config(text="密码:"+password)
        flag=True
    except Exception as e:
        pass

def fn(zipPath,pwdPath):
    zFile = zipfile.ZipFile(zipPath)
    passFile = open(pwdPath)
    n=0
    lines=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+=1
        if(n%1000==0):
            pb.config(value=n*100/num)
            window.update()
        if(flag):
            pb.config(value=100)
            break
    zFile.close()
    if(not(flag)):
        pb.config(value=100)
        lb2.config(text="密码未找到")

def selectZIP():
    global  myfilepath
    global flag
    flag=False
    myfilepath=filedialog.askopenfilename()
    if len(myfilepath)>0:
        lb.config(text=myfilepath)
        lb2.config(text="密码:")


def getPwd():
    global myfilepath
    fn(myfilepath,"pwd.txt")


global myfilepath

global flag
flag=False

global mynum

mynum=0

window=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/

暴力破解zip文件密码_第2张图片

下载下来

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

下面破解,输入john hash

暴力破解zip文件密码_第3张图片

用了9秒

暴力破解zip文件密码_第4张图片

破解出来密码是11223344

同时也支持用自己的密码本破解

命令如 john -w=d:\pwd.txt hash

已经破解过的可以通过 john --show hash 显示密码

 

 

你可能感兴趣的:(算法)