首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]Python轻松加密文件夹:三步实现数据安全,告别隐私泄露风险

发布于 2025-06-24 09:30:31
0
1440

引言在数字化时代,数据安全成为了每个人都需要关注的问题。文件夹加密是保护数据隐私的有效手段之一。本文将介绍如何使用Python轻松实现文件夹加密,只需三步即可为您的数据提供安全保障。准备工作在开始之前...

引言

在数字化时代,数据安全成为了每个人都需要关注的问题。文件夹加密是保护数据隐私的有效手段之一。本文将介绍如何使用Python轻松实现文件夹加密,只需三步即可为您的数据提供安全保障。

准备工作

在开始之前,请确保您已安装以下Python库:

  • pycryptodome:用于加密和解密文件。

您可以通过以下命令安装:

pip install pycryptodome

步骤一:生成加密密钥

首先,我们需要生成一个加密密钥。密钥是加密和解密数据的关键,因此请确保将其保存在安全的地方。

from Crypto.Random import get_random_bytes
def generate_key(): key = get_random_bytes(32) # 生成32字节的密钥 with open('encryption_key.bin', 'wb') as key_file: key_file.write(key) return key
key = generate_key()
print("加密密钥已生成,并保存在'encryption_key.bin'文件中。")

步骤二:加密文件夹

接下来,我们将使用生成的密钥来加密文件夹中的所有文件。

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import os
def encrypt_file(file_path, key): cipher = AES.new(key, AES.MODE_CBC) with open(file_path, 'rb') as file: file_data = file.read() ct_bytes = cipher.encrypt(pad(file_data, AES.block_size)) iv = cipher.iv with open(file_path + '.enc', 'wb') as enc_file: enc_file.write(iv) enc_file.write(ct_bytes)
def encrypt_folder(folder_path, key): for root, dirs, files in os.walk(folder_path): for file in files: file_path = os.path.join(root, file) encrypt_file(file_path, key)
encrypt_folder('path_to_your_folder', key)
print("文件夹加密完成。")

步骤三:解密文件夹

当需要访问加密文件夹中的数据时,您可以使用以下代码进行解密。

def decrypt_file(file_path, key): with open(file_path, 'rb') as enc_file: iv = enc_file.read(16) ct = enc_file.read() cipher = AES.new(key, AES.MODE_CBC, iv) pt = unpad(cipher.decrypt(ct), AES.block_size) with open(file_path[:-4], 'wb') as dec_file: dec_file.write(pt)
def decrypt_folder(folder_path, key): for root, dirs, files in os.walk(folder_path): for file in files: if file.endswith('.enc'): file_path = os.path.join(root, file) decrypt_file(file_path, key)
decrypt_folder('path_to_your_folder', key)
print("文件夹解密完成。")

总结

通过以上三步,您可以使用Python轻松加密和解密文件夹,保护您的数据安全。请确保将加密密钥保存在安全的地方,以免数据丢失。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流