莫度编程网

技术文章干货、编程学习教程与开发工具分享

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 文件,我们不再赘述。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言

    Powered By Z-BlogPHP 1.7.4

    蜀ICP备2024111239号-43