Python zipfile 简单使用(暴力破解)

1, 创建zip文件,arcname表示压缩文件的路径

def write(self, filename, arcname=None, compress_type=None):

def createZip():
    file_name = 'test3.zip'
    with zipfile.ZipFile(file_name, 'w', zipfile.ZIP_DEFLATED) as f:
        f.write('img1.jpg')
        f.write('img2.jpg')
        f.write('img3.jpg')
        f.setpassword(b'hello')

不过试了一个这个设置密码貌似没有起作用不知为什么

2, 破解,密码是bytes类型,如果 密码失败会有异常,成功 的话就直接将文件抽取到指定目录,默认为当前目录

def extractall(self, path=None, members=None, pwd=None):
def getFile(file_path):
    with zipfile.ZipFile(file_path, 'r', zipfile.ZIP_DEFLATED) as f:
        f.extractall(pwd=b'123456')

3, 下载常见弱口令,进行逐一尝试即可

https://pan.baidu.com/s/1o6KoiqY

1.1 zipfile.ZipFile(fileName[, mode[, compression[, allowZip64]]]) 
fileName是没有什么疑问的了。 
mode和一般的文件操作一样,'r'表示打开一个存在的只读ZIP文件;'w'表示清空并打开一个只写的ZIP文件,或创建一个只写的ZIP文件;'a'表示打开一个ZIP文件,并添加内容。 
compression表示压缩格式,可选的压缩格式只有2个:ZIP_STORE;ZIP_DEFLATED。ZIP_STORE是默认的,表示不压缩;ZIP_DEFLATED表示压缩,如果你不知道什么是Deflated,那么建议你去补补课。 
allowZip64为True时,表示支持64位的压缩,一般而言,在所压缩的文件大于2G时,会用到这个选项;默认情况下,该值为False,因为Unix系统不支持。 
1.2 zipfile.close() 
说真的,这个没什么可说的,如果有的话,那就是你写入的任何文件在关闭之前不会真正写入磁盘。 
1.3 zipfile.write(filename[, arcname[, compress_type]]) 
acrname是压缩文件中该文件的名字,默认情况下和filename一样 
compress_type的存在是因为zip文件允许被压缩的文件可以有不同的压缩类型。 
1.4 zipfile.extractall([path[, member[, password]]]) 
path解压缩目录,没什么可说的 
member需要解压缩的文件名儿列表 
password当zip文件有密码时需要该选项 
对于简单的应用,这么多就够了。 
2)高级应用 
2.1 zipfile.is_zipfile(filename) 
判断一个文件是不是压缩文件 
2.2 ZipFile.namelist() 
返回文件列表 
2.3 ZipFile.open(name[, mode[, password]]) 
打开压缩文档中的某个文件 
2.4 ZipFile.infolist() 
2.5 ZipFile.getinfo(name) 
上述文件返回ZipInfo对象,只不过一个返回的是列表,一个返回的是一个ZipInfo 
ZipInfo类 
2.6 ZipInfo.filename 
2.7 ZipInfo.date_time 
返回值的格式为(year,month,date,hour,minute,second) 
 

猜你喜欢

转载自my.oschina.net/ahaoboy/blog/1815020