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

Python编写案例:实现一个简单的文件加密/解密工具

发布时间:2023-12-04 17:58:56

下面是一个简单的文件加密/解密工具的Python代码实现,包括一个使用示例:

import os
from cryptography.fernet import Fernet

def generate_key():
    """生成加密密钥"""
    key = Fernet.generate_key()
    with open('key.key', 'wb') as key_file:
        key_file.write(key)

def load_key():
    """加载加密密钥"""
    return open('key.key', 'rb').read()

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

    encrypted_data = f.encrypt(original_data)

    with open(filename, 'wb') as encrypted_file:
        encrypted_file.write(encrypted_data)

def decrypt_file(filename, key):
    """解密文件"""
    f = Fernet(key)
    
    with open(filename, 'rb') as encrypted_file:
        encrypted_data = encrypted_file.read()

    decrypted_data = f.decrypt(encrypted_data)

    with open(filename, 'wb') as decrypted_file:
        decrypted_file.write(decrypted_data)

# 加密/解密示例
if __name__ == "__main__":
    # 生成密钥
    generate_key()
    
    key = load_key()
    
    # 加密文件
    encrypt_file('example.txt', key)
    
    # 解密文件
    decrypt_file('example.txt', key)

上述代码使用了cryptography库提供的Fernet加密算法,首先生成一个加密密钥保存在key.key文件中。encrypt_file函数利用该密钥,对指定文件进行加密,并将加密后的数据保存在同名文件中。decrypt_file函数则是用同样的密钥对加密后的文件进行解密。

使用示例中,我们先生成密钥,然后利用该密钥对example.txt文件进行加密,加密后的结果保存在example.txt中。然后再对加密后的文件进行解密,结果保存在example.txt中。这样就完成了文件的加密和解密过程。

注意:为了保证安全性,在实际使用中应该妥善保管密钥文件,确保只有授权的人能够访问密钥。