Flutter中如何为Zip文件或任意文件添加密码锁?
为Zip文件添加密码保护的跨平台方案
ZipFileEncoder本身不支持加密功能,要实现密码保护且不依赖平台特定代码,最直接的方式是使用支持AES加密的跨平台第三方库,比如pyzipper:
步骤1:安装依赖库
执行以下命令安装pyzipper:
pip install pyzipper
步骤2:编写加密压缩代码
pyzipper是Python标准库zipfile的扩展,支持AES-256加密,跨平台兼容Windows、Linux和macOS,无需调用系统原生工具:
import pyzipper # 创建加密Zip文件,指定压缩算法和加密方式 with pyzipper.AESZipFile('encrypted_archive.zip', 'w', compression=pyzipper.ZIP_LZMA, encryption=pyzipper.WZ_AES) as zip_file: # 设置密码(需传入字节类型) zip_file.setpassword(b'your_strong_password_here') # 添加单个文件到Zip包 zip_file.write('target_file.pdf') # 直接写入字符串内容到Zip包内的新文件 zip_file.writestr('readme.txt', '此Zip文件受密码保护')
额外说明
- 解密时同样可以用
pyzipper读取,用法和标准zipfile类似,只需传入密码即可 - 避免使用依赖系统原生zip工具的方案(比如调用
zip命令行),这类方案会引入平台特定性
内容的提问来源于stack exchange,提问作者Adrian Fernandes
相关产品推荐
相关产品推荐

