视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python压缩解压缩zip文件及破解zip文件密码的方法
2020-11-27 14:34:50 责编:小采
文档
 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')

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

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

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

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

import zipfile
import os
from threading import Thread
import time
#压缩文件的路径
path = r'C:UsersAdministratorDesktopmoeMaid-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('
')
 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)


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

下载本文
显示全文
专题