欢迎访问宙启技术站
智能推送

使用Python实现一个简单的文件加密解密程序

发布时间:2023-12-04 14:10:12

文件加密解密程序可以通过使用Python中的加密库和文件操作函数来实现。下面是一个简单的示例程序:

import os
import cryptography
from cryptography.fernet import Fernet

def generate_key():
    """生成加密密钥"""
    return Fernet.generate_key()

def save_key(key, filename):
    """将密钥保存到文件"""
    with open(filename, 'wb') as f:
        f.write(key)

def load_key(filename):
    """从文件中加载密钥"""
    with open(filename, 'rb') as f:
        return f.read()

def encrypt_file(key, filename):
    """加密文件"""
    f = Fernet(key)
    with open(filename, 'rb') as file:
        original_content = file.read()
    encrypted_content = f.encrypt(original_content)
    with open(filename, 'wb') as file:
        file.write(encrypted_content)

def decrypt_file(key, filename):
    """解密文件"""
    f = Fernet(key)
    with open(filename, 'rb') as file:
        encrypted_content = file.read()
    decrypted_content = f.decrypt(encrypted_content)
    with open(filename, 'wb') as file:
        file.write(decrypted_content)

# 生成密钥
key = generate_key()
# 保存密钥到文件
save_key(key, 'key.key')
# 加载密钥
loaded_key = load_key('key.key')

# 加密文件
encrypt_file(loaded_key, 'example.txt')
# 解密文件
decrypt_file(loaded_key, 'example.txt')

上述代码使用了Python中的cryptography库中的Fernet类来实现加密解密操作。首先,使用generate_key()函数生成一个加密密钥,并使用save_key()函数将密钥保存到文件中。然后,使用load_key()函数从文件中加载密钥。接下来,使用encrypt_file()函数将指定文件加密,使用decrypt_file()函数将加密后的文件解密。

在这个示例程序中,我们对同一个文件进行了加密和解密操作,可以根据实际需求修改文件名和路径。