使用python制作zip口令破解程序

一、如何用python操作zip文件

python标准库中有一个叫zipfile.py的文件,在程序中导入它
import zipfile
一般情况下,它的语法是这样的

import zipfile
zipfile = zipfile.ZipFile("zipfile.zip")
#这里的zipfile.zip是要解压的文件(要和本程序在同一目录下)
zipfile.extractall(pwd="12345")
#这里的12345应为要解压文件的密码

可是一旦运行

很不幸,报错了
原因是在zipfile.extractall(pwd="password")这类型出错
不用慌
这似乎属于编码类型不一样,在后面加encode(‘ascii’)就可以了

import zipfile
zipfile = zipfile.ZipFile("zipfile.zip")
#这里的zipfile.zip是要解压的文件(要和本程序在同一目录下)
zipfile.extractall(pwd="12345".encode("ascii"))
#这里的12345应为要解压文件的密码

很好,现在不报错了

如果密码不正确呢


很简单,他会报错,但我们可以利用以上所讲来破解一个zip文件

二、使用字典进行破解

在了解基本语法后破解的原理就非常简单了,我们现在只需要一个存放着成百上千的密码的txt文件,然后将每一个密码赋给pwd去尝试,直到正确为止。

但我们得待会再下载密码字典,因为一般字典非常大,几百万条密码,会使我们的程序进行的非常慢,先自己做一个带密码的zip文件,密码就设置12345,再在同一目录下新建txt文件,里面输一些密码,必须包含12345,类似于这样


接下来我们用open()和readlines()读取刚才创建的txt文件里的内容,用try…except…来保证即使是错误的密码,程序也会继续运行

import zipfilezipfile=zipfile.ZipFile('zipfile.zip')
password = open('新建文本文档.txt')
for line_word in password.readlines():#使用readlines()读取新建文本文档中每一行的密码try:zipfile.extractall(pwd=line_word.encode('ascii'))print('[+]password='+line_word)exit(0)except:pass#错误密码直接过

可他竟没反应?
原因在于你读取的txt文件

他对于每一个密码末尾都多了一个换行
简单,去掉就行了
python中strip()函数可以去除字符串中的东西
对于换行,我们可以用strip(“\n”)

import zipfilezipfile=zipfile.ZipFile('text.zip')
password = open('新建文本文档.txt')
for line_word in password.readlines():#使用readlines()读取新建文本文档中每一行的密码line_word=line_word.strip('\n')try:zipfile.extractall(pwd=line_word.encode('ascii'))print('[+]password='+line_word)except:pass#错误密码直接过  

非常棒,现在已经能解压了

but这竟然解压出来的是乱码

这是因为解码不同,打开python所在的目录,打开Lib在里面找到zipfile.py,用idle打开,点击edit中的find,查找‘cp437’(一共两处),将两处的cp437都改成gbk

太棒了

一个简单的zip字典破解就做好了,如果你只想看到这,那你现在可以从网上随便找一个字典并使用,但后面还会讲他的完善,这就需要有点基础了

三、模块化

这个不多讲,只是将上述代码装到一函数模块中,优点不再赘述

四、使用线程与optparse库

使用多线程可以使破解更快,可以把你的字典分成几块,然后不同线程同时进行
optparse可以让你在终端中直接使用它,这对于把他打包成exe文件有很大帮助

import zipfile
import optparse
from threading import Threaddef extractFile(zFile,password):try:zFile.extractall(pwd=password.encode("ascii"))print("[+]Found password "+password)exit(0)except:passdef main():parser=optparse.OptionParser(r"usage%prog "+"-f <zipfile>")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) | (option.dname == None):print (parser.usage)exit(0)else:zname=options.znamedname=option.dnamezFile=zipfile.ZipFile(zname)passFile=open(dname,encoding='utf-8',errors='ignore')for line in passFile.readlines():password=line.strip('\n')t=Thread(target=extractFile, args=(zFile,password))t.start()if __name__=="__main__":main()

使用python制作zip口令破解程序相关推荐

  1. Python编写zip密码破解脚本(超详细)

    Python编写zip暴破脚本 原理 python的zipfile库 暴破zip文件口令 利用线程提高性能 用户自定义参数 脚本完整代码 最近看到一篇关于zip密码破解脚本的文章,梳理了一番,向分享给 ...

  2. python英语词汇读音_利用Python制作查单词小程序(一):抓取来自百度翻译的单词释义和音标...

    小编在学习英语的时候,遇到不认识的英语单词,会用百度翻译来查询单词的释义和音标,并播放单词的读音.为了便于复习和记忆,需要将单词的释义和音标以复制粘贴的方式保存到本地. 这个过程非常繁琐,于是小编就想 ...

  3. 用Python制作一个成绩分析程序

    用Python做一个成绩分析程序 第一步:导库 第二步:导入数据 第三步:输出数据并建立分隔栏 第四步:完成分数统计并画出饼图 本程序可以实现画班级成绩饼图的效果. 第一步:导库 from pyech ...

  4. Python 制作天眼查小程序

    这是「进击的Coder」的第 788 篇技术分享 作者:萝卜大杂烩 来源:萝卜大杂烩 " 阅读本文大概需要 9 分钟. " 今天我们一起来制作一个天眼查 GUI 程序,开宗明义,我 ...

  5. python制作简单软件_用Python制作简单的钢琴程序的教程

    录一段音频,把它的音高改变50次并把每一个新的音频匹配到键盘的一个键位,你就能把电脑变成一架钢琴! 一段音频可以被编码为一组数值的数组(或者列表),像这样: 我们可以在数组中每隔一秒拿掉一秒的值来将这 ...

  6. python简易程序教程_用Python制作简单的钢琴程序的教程

    录一段音频,把它的音高改变50次并把每一个新的音频匹配到键盘的一个键位,你就能把电脑变成一架钢琴! 一段音频可以被编码为一组数值的数组(或者列表),像这样: 我们可以在数组中每隔一秒拿掉一秒的值来将这 ...

  7. 13.6.3 暴力 PDF 口令破解程序

    假定有一个加密的PDF 文件,你忘记了口令,但记得它是一个英语单词.尝试 猜测遗忘的口令是很无聊的任务.作为替代,你可以写一个程序,尝试用所有可能的英语单词来解密这个PDF 文件,直到找到有效的口令. ...

  8. python制作更换壁纸小程序

    一.功能简介 1.利用爬虫技术从网络上爬取图片 2.将图片转换为.bmp扩展名类型的图片 3.将图片设置为桌面壁纸 4.打包成exe 5.修改注册表创建右键快捷方式 6.制作卸载程序,删除下载的图片, ...

  9. python制作表白神器_程序员的七夕用30行代码让Python化身表白神器

    转眼又到了咱们中国传统的情人节七夕了,今天笔者就带大家来领略一下用Python表白的方式.让程序员的恋人们感受一下IT人的浪漫. 一.词云制作 首先咱们可以用之前介绍过的wordcould包制作词云. ...

最新文章

  1. Web开发的那点事--数据持久层常用功能
  2. opencl track资料整理
  3. python 十六进制转中文_Python列表中包含中文时输出十六进制转中文的小方法
  4. Razor Page–Asp.Net Core 2.0新功能 Razor Page介绍
  5. 请检查virtualboxapi是否正确安装_MBR膜组件安装施工方案指南
  6. ICS TRIPLEX模块T9110、T8461、T8110B、T8480C、T9110、T9451、T9402、T9432、T9110、T9310-02、1433/09232486825、9100
  7. Eclipse SVN历史乱码问题
  8. CF1413A 【Finding Sasuke】
  9. 安卓浏览本地指定路径视频文件并播放
  10. java开发的公文管理系统源代码_基于jsp的公文管理系统-JavaEE实现公文管理系统 - java项目源码...
  11. Linux下useradd与adduser的区别
  12. 白话数字签名(2)——软件设备
  13. 【旁门Python 01】什么是wheel包,如何去用它?
  14. 如何评价《就算老公一毛钱股份都没拿到,在我心里,他依然是最牛逼的创业者》里面这位CEO的所作所为?
  15. 软件测试就是点点点?你想的太简单了......
  16. studio 报错Error: Activity class
  17. Shit Happens
  18. 黑苹果 【 I7 8700K z370 1060 和 I7 7700K z270 集显 的安装记录】
  19. 【SCCB接口协议简介(适用于OV系列摄像头)】
  20. Android开发丶集成微信原生分享并于分享网页时加载网络缩略图

热门文章

  1. 引入tiptap之后直接报错Duplicate use of selection JSON ID cell
  2. 傻白入门芯片设计,盘点CPU业界的顶尖人才(十四)
  3. Linux+Apache+MySQL+PHP+FrontPage完全安装手册(转)
  4. 微信支付点金计划和商家小票的开发教程
  5. qt制作c语言万年历,基于QT实现的日历程序
  6. 2019-多益网络-笔试
  7. 【转】网络即时战略游戏软件开发 结构体系分析
  8. 销售王家装预算报价软件 v2006.12.15 bt
  9. Canvas 3D魔方小游戏
  10. illustrator画图