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使用点操作符访问字典(dict)数据的方法
Mar 16 Python
详解Python的Django框架中的通用视图
May 04 Python
python操作redis的方法
Jul 07 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
python实现简单登陆流程的方法
Apr 22 Python
Python安装lz4-0.10.1遇到的坑
May 20 Python
Python实现快速傅里叶变换的方法(FFT)
Jul 21 Python
使用Python完成15位18位身份证的互转功能
Nov 06 Python
Django3.0 异步通信初体验(小结)
Dec 04 Python
Python定时任务APScheduler原理及实例解析
May 30 Python
总结Python变量的相关知识
Jun 28 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 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中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
教你如何开启shopnc b2b2c 伪静态
2014/10/21 PHP
微信支付开发告警通知实例
2016/07/12 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
jquery中对表单的基本操作代码
2010/07/29 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
2016/10/13 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
Node.js中DNS模块学习总结
2018/02/28 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
新闻系毕业生推荐信
2013/11/16 职场文书
就业表自我评价分享
2014/02/06 职场文书
竞选部门副经理的自荐书范文
2014/02/11 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
2019奶茶店创业计划书范本,值得你借鉴
2019/08/14 职场文书