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

掌握Python中的write()函数:实现文件的加密写入操作

发布时间:2023-12-12 02:49:17

在Python中,使用write()函数可以实现向文件中写入内容。write()函数的语法为file.write(str),其中file表示文件对象,str表示要写入的内容。

为了实现文件的加密写入操作,我们可以通过对写入的内容进行加密处理,然后再写入文件。下面是一个使用AES算法加密写入文件的例子:

from cryptography.fernet import Fernet

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

# 加密内容
def encrypt_content(key, content):
    cipher_suite = Fernet(key)
    encrypted_content = cipher_suite.encrypt(content.encode())
    return encrypted_content

# 写入加密内容到文件
def write_encrypted_content(file_path, key, encrypted_content):
    with open(file_path, 'wb') as file:
        file.write(key)
        file.write(encrypted_content)

# 读取加密内容
def read_encrypted_content(file_path, key):
    with open(file_path, 'rb') as file:
        file_key = file.read(32)
        if file_key == key:
            encrypted_content = file.read()
            cipher_suite = Fernet(key)
            decrypted_content = cipher_suite.decrypt(encrypted_content)
            return decrypted_content.decode()
        else:
            raise ValueError('Invalid key')

# 示例使用
if __name__ == "__main__":
    # 生成加密密钥
    key = generate_key()

    # 要写入的内容
    content = "Hello, this is a secret message!"

    # 加密内容
    encrypted_content = encrypt_content(key, content)

    # 写入加密内容到文件
    write_encrypted_content("encrypted_file.txt", key, encrypted_content)

    # 读取加密内容
    decrypted_content = read_encrypted_content("encrypted_file.txt", key)
    print("Decrypted content:", decrypted_content)

在示例代码中,我们首先使用generate_key()函数生成一个加密密钥,然后调用encrypt_content()函数对要写入的内容进行加密处理。接下来,我们调用write_encrypted_content()函数将加密密钥和加密后的内容写入文件,并指定文件路径。最后,我们调用read_encrypted_content()函数读取加密内容,并使用原始的加密密钥对内容进行解密。

示例的加密算法使用了cryptography库中的Fernet类,它基于AES算法提供了对称加密功能。

通过这种方式,我们可以实现将加密内容写入文件,并在需要时读取并解密内容,从而保护文件中的敏感信息。