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

Python编写案例:实现一个简单的文件加密器

发布时间:2023-12-04 13:54:50

下面是一个简单的文件加密器的Python实现案例:

import os

def encrypt_file(file_path, key):
    # 读取文件内容
    with open(file_path, 'rb') as f:
        content = f.read()
    
    # 加密文件内容
    encrypted_content = bytes([byte ^ key for byte in content])
    
    # 构建加密文件路径
    dir_name, file_name = os.path.split(file_path)
    encrypted_file_path = os.path.join(dir_name, 'encrypted_' + file_name)
    
    # 写入加密后的文件内容
    with open(encrypted_file_path, 'wb') as f:
        f.write(encrypted_content)
    
    # 删除原始文件
    os.remove(file_path)
    
    print(f"文件 {file_path} 加密完成,加密后文件保存为 {encrypted_file_path}")

def decrypt_file(file_path, key):
    # 读取加密文件内容
    with open(file_path, 'rb') as f:
        encrypted_content = f.read()
    
    # 解密文件内容
    decrypted_content = bytes([byte ^ key for byte in encrypted_content])
    
    # 构建解密文件路径
    dir_name, file_name = os.path.split(file_path)
    decrypted_file_path = os.path.join(dir_name, 'decrypted_' + file_name)
    
    # 写入解密后的文件内容
    with open(decrypted_file_path, 'wb') as f:
        f.write(decrypted_content)
    
    # 删除加密文件
    os.remove(file_path)
    
    print(f"文件 {file_path} 解密完成,解密后文件保存为 {decrypted_file_path}")

# 使用示例
file_path = '/path/to/file.txt'  # 要加密的文件路径
key = 100  # 加密/解密密钥

encrypt_file(file_path, key)  # 加密文件
decrypt_file('/path/to/encrypted_file.txt', key)  # 解密文件

以上代码实现了一个简单的文件加密器和解密器。其中,encrypt_file函数用于加密文件,将读取文件内容后对每个字节和密钥进行异或运算得到加密后的内容,然后将其写入新的加密文件中。decrypt_file函数用于解密文件,将读取加密文件内容后对每个字节和密钥进行异或运算得到解密后的内容,然后将其写入新的解密文件中。

使用示例中,可以按需修改file_path为要加密的文件的路径,key为加密/解密密钥。调用encrypt_file函数可以对文件进行加密,加密后的文件保存在原始文件所在目录并以"encrypted_"作为文件名前缀。调用decrypt_file函数可以对加密文件进行解密,解密后的文件保存在原始加密文件所在目录并以"decrypted_"作为文件名前缀。