python:使用pyzipper创建加密zip包
之前文章我们讲到使用zipfile模块自带的加密功能,其实并不生效,本章我们学习使用pyzipper通过简单的命令实现对zip包解压缩时加密和解密的过程。
一、pyzipper库简介
pyzipper是Python中用于创建、读取、写入和修改ZIP文件的库,它兼容Python2和Python3,并且支持AES加密,能够满足各种复杂的压缩文件处理需求。
安装pyzipper非常简单,使用pip命令即可:
pip install pyzipper
在使用方式上高度类似标准库zipfile的使用,包括添加压缩文件,解压文件等等,具体可参考之前文章:Python文件压缩神器:ZipFile功能全解析,支持一键压缩和解压
二、核心函数及案例
1. pyzipper.AESZipFile:创建和操作加密ZIP文件
AESZipFile类用于创建支持AES加密的ZIP文件,它的构造函数接受文件路径、打开模式等参数。
案例:创建一个加密的 ZIP 文件并添加文件
import pyzipper
# 创建AES-256加密的ZIP文件
with pyzipper.AESZipFile('secure.zip', 'w', compression=pyzipper.ZIP_LZMA) as zipf:
zipf.setpassword(b'mysecret')
zipf.setencryption(pyzipper.WZ_AES, nbits=256) # 指定AES-256加密
zipf.write('test.py') #添加压缩文件
说明:这里使用 AES - 256 位加密创建了一个zip文件,并将test.py添加到其中。setpassword方法用于设置密码,密码需以字节串形式传入,否则报错。
当生成加密的zip文件后,我们在windows电脑上解压文件,会提示需要密码:
此时我们输入密码后,方可解压成功。
当然我们可以通过代码进行解压:
# 解压
with pyzipper.AESZipFile('secure.zip') as zipf:
zipf.setpassword(b'mysecret')
zipf.extractall()
2. pyzipper.ZipFile:普通ZIP文件操作
ZipFile类与Python标准库中的zipfile.ZipFile类似,用于创建、读取和写入普通的 ZIP 文件,我们不再赘述。