Python压缩解压缩zip文件及破解zip文件密码的方法


Posted in Python onNovember 04, 2015

python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。

例如,在py脚本所在目录中,有如下文件:

readability/readability.js
readability/readability.txt
readability/readability-print.css
readability/sprite-readability.png
readability/readability.css

将 readability 目录中的文件压缩到脚本所在目录的 readability.zip 文件中,保持相同的文件结构,然后打印出生成的压缩包 的文件列表,再用两种方式分别解压文件到脚本所在目录的 output 目录和 output/bak 目录中。

脚本如下:

#!/usr/vin/env python
# coding: utf-8
"""
压缩和解压zip文件
"""

import os
import zipfile

def compress(zip_file, input_dir):
  f_zip = zipfile.ZipFile(zip_file, 'w')
  for root, dirs, files in os.walk(input_dir):
    for f in files:
      # 获取文件相对路径,在压缩包内建立相同的目录结构
      abs_path = os.path.join(os.path.join(root, f))
      rel_path = os.path.relpath(abs_path, os.path.dirname(input_dir))
      f_zip.write(abs_path, rel_path, zipfile.ZIP_STORED)

def extract(zip_file, output_dir):
  f_zip = zipfile.ZipFile(zip_file, 'r')

  # 解压所有文件到指定目录
  f_zip.extractall(output_dir)

  # 逐个解压文件到指定目录
  for f in f_zip.namelist():
    f_zip.extract(f, os.path.join(output_dir, 'bak'))

def printdir(zip_file):
  f_zip = zipfile.ZipFile(zip_file, 'r')
  print '== printdir() ============================'
  f_zip.printdir()
  print
  print '== namelist() ============================'
  for f in f_zip.namelist():
    print f

if __name__ == '__main__':
  zip_file = 'readability.zip'
  compress(zip_file, os.path.join(os.getcwd(), 'readability'))
  printdirzip_file)
  extract(zip_file, 'output')</pre>

python暴力破解含密码的zip压缩文件
思路:

1.先自己生成一份txt的密码字典

2.然后读取出来,一个个的尝试,当密码错误是,程序会报错中断,所以密码错误,要使用pass

3.当解压缩成功后,中断程序,输出正确密码

import zipfile
import os
from threading import Thread
import time
#压缩文件的路径
path = r'C:\Users\Administrator\Desktop\moeMaid-master.zip'
#password='1234'

def pojie_zip(path,password):
 if path[-4:]=='.zip':
  #path = dir+ '\\' +file
  #print path
  zip = zipfile.ZipFile(path, "r",zipfile.zlib.DEFLATED)
  #print zip.namelist()
  try:
   #若解压成功,则返回True,和密码
   zip.extractall(path='C:\\Users\\Administrator\\Desktop\\',members=zip.namelist() , pwd=password)
   print ' ----success!,The password is %s' % password
   zip.close()
   return True
  except:
   pass #如果发生异常,不报错
  print 'error'
  
  
def get_pass():
 #密码字典的路径
 passPath='C:\\Users\\Administrator\\Desktop\\zip.txt'
 passFile=open(passPath,'r')
 for line in passFile.readlines():
  password=line.strip('\n')
  print 'Try the password %s' % password
  if pojie_zip(path,password):
   break
 passFile.close()
if __name__=='__main__':
 start=time.clock()
 get_pass()
 print "done (%.2f seconds)" % (time.clock() - start)

Python压缩解压缩zip文件及破解zip文件密码的方法

这是我解压缩一个5.4M文件的速度,其实时间都花在了解压缩上了

Python 相关文章推荐
Python实现动态添加类的属性或成员函数的解决方法
Jul 16 Python
Python连接mssql数据库编码问题解决方法
Jan 01 Python
基于python实现的抓取腾讯视频所有电影的爬虫
Apr 22 Python
Python Flask基础教程示例代码
Feb 07 Python
解决python xlrd无法读取excel文件的问题
Dec 25 Python
对python For 循环的三种遍历方式解析
Feb 01 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
使用Python打造一款间谍程序的流程分析
Feb 21 Python
Django nginx配置实现过程详解
Sep 10 Python
Python关于拓扑排序知识点讲解
Jan 04 Python
Python还能这么玩之用Python修改了班花的开机密码
Jun 04 Python
python通过文件头判断文件类型
Oct 30 #Python
python制作花瓣网美女图片爬虫
Oct 28 #Python
python制作最美应用的爬虫
Oct 28 #Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 #Python
详解JavaScript编程中的window与window.screen对象
Oct 26 #Python
深入讲解Python中的迭代器和生成器
Oct 26 #Python
Windows下使Python2.x版本的解释器与3.x共存的方法
Oct 25 #Python
You might like
php skymvc 一款轻量、简单的php
2011/06/28 PHP
奇怪的PHP引用效率问题分析
2012/03/23 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
2014/07/30 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
php对象工厂类完整示例
2018/08/09 PHP
javascript调试说明
2010/06/07 Javascript
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
jquery iframe操作详细解析
2013/11/20 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
vuex 的简单使用
2018/03/22 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
Python实现微信机器人的方法
2019/09/06 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
python自动生成model文件过程详解
2019/11/02 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
酒吧副总经理岗位职责
2013/12/10 职场文书
入党综合考察材料
2014/06/02 职场文书
超市周年庆活动方案
2014/08/16 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
tensorflow中的数据类型dtype用法说明
2021/05/26 Python