Python对文件加密操作

采用XOR加密方式。

def encrypt_file(encrypt_path, decrypt_path, key):
    with open(encrypt_path, "rb") as encrypt_file, open(decrypt_path, "wb") as decrypt_file:
        # 将key转化为字节码数据,并计算出所需要的字节长度
        key_bytes = key.to_bytes((key.bit_length() + 7) // 8, byteorder="big")
        key_len = len(key_bytes)
        # 将明文按所需字节长度读入缓冲区
        buffer = encrypt_file.read(key_len)
        # 循环缓冲区
        while buffer:
            encrypted_buffer = bytes([b ^ k for b, k in zip(buffer, key_bytes)])
            decrypt_file.write(encrypted_buffer)
            buffer = encrypt_file.read(key_len)


def decrypt_file(decrypt_path, encrypt_path, key):
    with open(decrypt_path, "rb") as decrypt_file, open(encrypt_path, "wb") as encrypt_file:
        key_bytes = key.to_bytes((key.bit_length() + 7) // 8, byteorder="big")
        key_len = len(key_bytes)
        buffer = decrypt_file.read(key_len)
        while buffer:
            decrypted_buffer = bytes([b ^ k for b, k in zip(buffer, key_bytes)])
            encrypt_file.write(decrypted_buffer)
            buffer = decrypt_file.read(key_len)


if __name__=="__main__":
    key = 0b1111_0000  
    # 加密
    encrypt_file("./Python/data/encrypt.txt", "./Python/data/decrypt.txt", key)

    # 解密
    decrypt_file("./Python/data/decrypt.txt", "./Python/data/encrypt.txt", key)

你可能感兴趣的:(python,开发语言)