PythonPython 运维Python语言与信息数据获取和机器学习

一个Zip文件口令破解机

2017-07-06  本文已影响63人  心田祭思

自己动手写跑字典解密zip加密文件。本文以python3.6 版本,window环境

# coding=UTF-8
"""
用字典暴力破解ZIP压缩文件密码
"""
import zipfile
import optparse
from threading import Thread
def extractFile(zFile, password):
    try:
        #3.x 版本必须加上.encode('ascii'),3.x版本不能自动支持ascii码了
        zFile.extractall(pwd=password.encode('ascii'))
        print("[+] Found password " + password + "\n")
    except:
        pass
def main():
    parser = optparse.OptionParser("usage%prog " + "-f <zipfile> -d <dictionary>")
    parser.add_option("-f", dest="zname", type="string", help="specify zip file")
    parser.add_option("-d", dest="dname", type="string", help="specify dictionary file")
    (options, args) = parser.parse_args()
    if(options.zname == None ) |(options.dname == None):
        print(parser.usage)
        exit(0)
    else:
        zname = options.zname
        dname = options.dname
    zFile = zipfile.ZipFile(zname)
    passFile = open(dname)
    for line in passFile.readlines():
        password = line.strip('\n')
        t = Thread(target=extractFile,args=(zFile, password))
        t.start()

if __name__ == "__main__":
    main()

接着就可以在终端执行

python unzip.py -f evil.zip -d dictionary.txt

unzip.py 即这个程序
evil.zip 需要解密的文件
dictionary.txt 字典文件,即保存密码的文件可以多个换行分开

本文参照《python绝技》一书,书本是python2.7版,linux 环境下的。本文以python3.6版本,windows环境下。

上一篇下一篇

猜你喜欢

热点阅读