要完成这个内容 我们首先要进行一个思路的整理,继而帮助我们方便快捷迅速的完成这一个项目 。
我们要实现的功能为 对一个文件夹内的多个文件进行多线程的加密 其中 当我们程序运行时 应该提供一个输入窗口 用户输入密钥和文件夹的目录 然后程序进行加密 加密成功后应该告诉用户加密成功打印消息 我将步骤分为以下:
导入必要的库:os,threading以及cryptography等。
创建一个函数来加密文件。在这里我们可以使用cryptography库中的函数进行加密。
创建一个函数来遍历文件夹并加密文件。使用os库来获取文件夹内的所有文件。
使用多线程来加密每个文件。创建线程的数量等于文件的数量,每个线程负责加密一个文件。
创建用户输入函数。接受用户输入的密钥和文件夹路径。
最后,创建一个主函数,打印加密成功的消息
在我们理清以后 我们要做的第一步是要在pychamr安装对应的库以便我们调用
其中前两个是内置库不需要安装 我们从清华大学数据源进行后一个库的安装在终端输入如下代码
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple cryptography
导入 os 模块,用于文件和文件夹的操作;threading 模块,用于多线程处理;以及密码学模块中的 Fernet 类,用于文件加密。
import os
import threading
from cryptography.fernet import Fernet
接下来,我们定义了一个 encrypt_file(key, filename) 函数
def encrypt_file(key, filename):
"""
Given a filename (str) and key (bytes), it encrypts the file and write it
"""
f = Fernet(key)
with open(filename, "rb") as file:
file_data = file.read()
encrypted_data = f.encrypt