zipfile 库在 Python 加密
时间: 2023-11-05 08:06:55 浏览: 148
Python 的 zipfile 库可以用于创建、读取和修改 ZIP 文件。虽然 zipfile 库不支持 ZIP 文件的加密,但是可以通过使用第三方库进行加密。其中比较常用的是 `pycrypto` 和 `cryptography` 库。
下面是一个使用 `pycrypto` 库加密 ZIP 文件的示例代码:
```python
from zipfile import ZipFile
from Crypto.Cipher import AES
password = "my_password".encode("utf-8")
data = b"Hello, world!"
# 创建 ZIP 文件并添加数据
with ZipFile("encrypted.zip", "w") as zip_file:
zip_file.writestr("data.txt", data)
# 加密 ZIP 文件
with open("encrypted.zip", "rb") as zip_file:
data = zip_file.read()
# 使用 AES 加密算法,CBC 模式
cipher = AES.new(password, AES.MODE_CBC)
cipher_data = cipher.encrypt(data)
with open("encrypted.zip", "wb") as zip_file:
zip_file.write(cipher_data)
```
在上面的示例中,我们使用 `pycrypto` 库中的 AES 加密算法来加密 ZIP 文件。首先,我们创建 ZIP 文件并添加数据。然后,我们打开 ZIP 文件并读取数据。接下来,我们使用 `AES.new()` 方法创建一个 AES 加密对象,并使用密码和 CBC 模式初始化它。最后,我们使用 `cipher.encrypt()` 方法对 ZIP 文件的数据进行加密,并将加密后的数据写回到 ZIP 文件中。
需要注意的是,这种加密方式并不安全,因为密码是明文存储在代码中。如果需要更安全的加密方式,可以考虑使用密码管理工具来管理密码,并在运行代码时从密码管理工具中获取密码。
阅读全文