掌握基础语法后,尝试使用python的zipfile模块练手。

zipfile是Python里用来做zip格式编码的压缩和解压缩的。

这里将大体的思路分解成四段代码,逐一完善功能;

第一段代码:解压zip

首先了解python解压zip文件的库

import zipfile

# 定义通用解压函数
def tryZipPwd(zFile,savePath,pw =None): # 如果密码是空就直接解压,使用异常判断
try:
# 如果密码为空就直接解压
if pw == None:
zFile.extractall(path=savePath)
else:
# 将密码转换为utf-8编码
zFile.extractall(path=savePath,pwd=pw.encode('utf-8'))
print('[+] ZIp文件解压成功,密码:%s' %(pw))
return True
except:
print('[-]Zip文件解压失败,密码:%s' % (pw))
return False

第二段 解压zip函数的使用

将通用解压zip的函数,传入参数引用就可以了

# 指定密码打开Zip文件,密码是123qwer
#with zipfile.ZipFile('C:/Users/Windows32/Desktop/untitled/sucess.zip') as zFile:
# tryZipPwd(zFile,'C:/Users/Windows32/Desktop/untitled/','1234qwer')

第三段代码 读取文件内容

python逐行读取文件内容的三种方法;

方法1:

f = open("foo.txt")             # 返回一个文件对象
line = f.readline() # 调用文件的 readline()方法
while line:
print line, # 后面跟 ',' 将忽略换行符
# print(line, end = '')   # 在 Python 3中使用
line = f.readline() f.close()

方法2:

for line in open("foo.txt"):
print line,

方法3:

f = open("c:\\1.txt","r")
lines = f.readlines()#读取全部内容
for line in lines
print line

第四段代码-读取密码文本,批量传入密码尝试解压zip文件

综合以上的代码就可以实现zip压缩包的密码破解了,pass.txt是CSDN泄露的TOP100常用密码,写了for循环与while循环的代码;

# -*- coding: utf-8 -*-
import zipfile # 定义通用解压函数
def tryZipPwd(zFile,savePath,pw =None): try:
if pw == None:
zFile.extractall(path=savePath)
else:
zFile.extractall(path=savePath,pwd=pw.encode('utf-8'))
print('[+] ZIp文件解压成功,密码:%s' %(pw))
return True
except:
# print('[-]Zip文件解压失败,密码:%s' % (pw))
return False # 指定密码打开Zip文件
#with zipfile.ZipFile('C:/Users/Windows32/Desktop/untitled/sucess.zip') as zFile:
# tryZipPwd(zFile,'C:/Users/Windows32/Desktop/untitled/','1234qwer') # 逐行读取文本里的密码,然后传入通用解压函数中
passFile = open('C:/Users/Windows32/Desktop/untitled/pass1.txt') # for循环
# 当破解成功后退出程序与关闭文件流
for i in open('C:/Users/Windows32/Desktop/untitled/pass1.txt'):
# 将文本里的换行清除
password = i.strip('\n')
with zipfile.ZipFile('C:/Users/Windows32/Desktop/untitled/sucess.zip') as zFile:
# 传回函数执行状态,如果返回结果为真,就代表解压zip文件成功,输出当前的密码
flag = tryZipPwd(zFile,'C:/Users/Windows32/Desktop/untitled/',password)
if flag:
print("sucess pass is %s" % (i))
exit(0)
passFile.close()
i = passFile.readline()
passFile.close() # while循环
line = passFile.readline()
while line:
line = line.strip('\n')
with zipfile.ZipFile('C:/Users/Windows32/Desktop/untitled/sucess.zip') as zFile:
flag = tryZipPwd(zFile,'C:/Users/Windows32/Desktop/untitled/',line)
if flag:
print("sucess pass is %s" % (line))
exit(0)
passFile.close()
line = passFile.readline()
passFile.close()

【Python】zip文件密码破解的更多相关文章

  1. python zip文件密码爆破

    #!/usr/bin/env # coding=UTF-8 import zipfile import threading import os import sys class CrackZip: d ...

  2. 有个计算机专业的学妹问我:我这个zip文件密码破解运行起来为什么内存爆了?

    1.这篇博文的由来 2.跑下错误代码,找病根 先把学妹发给我的错误代码放上,能发现他为了提高速度加了多线程的代码,很聪明哦: import zipfile import itertools from ...

  3. Python与Hack之Zip文件口令破解

    1.需要的库: **import zipfile**import optparse**from threading import Thread(1)zipfile:1.1 zipfile.ZipFil ...

  4. 12.持久性后门----Ettercap之ARP中毒----RAR/ZIP & linux密码破解----kali上检测rootkits

    持久性后门 生成PHP shell weevely generate 密码 /root/Desktop/404.php 靶机IP/404.php weevely http://192.168.1.10 ...

  5. 暴力破解ZIP文件密码

    Python 的标准库提供了 ZIP 文件的提取压缩模块 zipfile,现在让我们试着用这个模块,暴力破解出加密的 ZIP 文件!我们可以用 extractall()这个函数抽取文件,密码正确则返回 ...

  6. 【pyhon】黑客用字典暴力破解Zip文件密码原理性展示

    基本原理:用程序把字典文件里拟定好的密码一个个提取出来,去测试zip能否打开 字典文件pass.txt内容: 1224 2121 asdf abcd1234 dwsdsd dssds 程序代码: # ...

  7. zip压缩包密码破解

    有一种破解方法叫做Known plaintext attack.市面上的密码破解软件几乎都带有这个功能.操作方法就是找到加密压缩包中的任意一个文件,用同样的压缩软件同样的压缩方式压缩成一个不加密的包, ...

  8. office文件密码破解方法及软件

    今天会用到3个软件 1.Office Password Remover 说明:这个软件可以很快破解.doc   .xls的密码 使用方法:参考百度经验里面的文章http://jingyan.baidu ...

  9. python zip文件压缩和解压

    压缩 import shutil zipOutputName = "1234" # 输出1234.zip fileType = "zip" # 文件类型zip ...

随机推荐

  1. MT【207】|ax^2+bx+c|中判别式$\Delta$的含义

    已知$a,b\in R^+,a+b=2$且对任意的$x\in R$,均有$|2x^2+ax-b|\ge|x^2+cx+d|$则$\dfrac{d-4c}{cd}$的最小值______ 提示:注意到$\ ...

  2. MT【68】一边柯西一边舍弃

    求$\sqrt{x-5}+\sqrt{24-3x}$的最值. 通常考试时会考你求最大值,常见的方式有三角代换,这里给如下做法: 证明:$\sqrt{x-5}+\sqrt{24-3x}=\sqrt{x- ...

  3. 洛谷P3085 [USACO13OPEN]阴和阳Yin and Yang(点分治,树上差分)

    洛谷题目传送门 闲话 偶然翻到一道没有题解的淀粉质,想证明一下自己是真的弱 然而ZSYC(字符串组合)早就切了 然后证明成功了,WA到怀疑人生,只好借着ZSY的代码拍,拍了几万组就出来了... 思路 ...

  4. Python基础之控制流

    介绍一些Python的基本的东西,你会发现,Python真的很简单.我也尽可能说得简单一些,因为我理解的也很简单. 在到目前为止我们所见到的程序中,总是有一系列的语句,Python忠实地按照它们的顺序 ...

  5. 自学Linux Shell12.5-while、until命令

    点击返回 自学Linux命令行与Shell脚本之路 12.5-while.until命令 until 循环与 while 循环在处理方式上刚好相反. while循环用于不断执行一系列命令,也用于从输入 ...

  6. CDQ分治学习笔记

    数据结构中的一块内容:$CDQ$分治算法. $CDQ$显然是一个人的名字,陈丹琪(NOI2008金牌女选手) 这种离线分治算法被算法界称为"cdq分治" 我们知道,一个动态的问题一 ...

  7. [USACO 2018 December Contest]作业总结

    t1 Convention 题目大意 每一头牛都有一个来的时间,一共有\(n\)辆车,求出等待时间最长的那头牛等待的最小时间. 解法 第一眼看到这道题还以为是\(2018noip\)普及组的t3魔鬼题 ...

  8. 逆向---03.mov、test等汇编指令、EAX、关键Call、OD调试技巧

    上一篇:逆向---02.je & jmp & jnz .OD调试 基础知识:(栗子中也会说的)栗子:链接: https://pan.baidu.com/s/1qZbbTvQ 密码: i ...

  9. Bash: about .bashrc, .bash_profile, .profile, /etc/profile, etc/bash.bashrc and others

    Some interesting excerpts from the bash manpage:When bash is invoked as an interactive login shell, ...

  10. WorkFlow基础实战

    WorkFlow使用笔记---- 状态机工作流的使用: 1.首先,项目的目标框架要选择.Net4.5版本,才有状态机工作流. 2.新建“活动”项,先从工具栏拖出一个StateMachine,然后添加其 ...