117.info
人生若只如初见

python如何给文件加密与解密

要给文件加密和解密,可以使用Python中的加密模块如cryptographyPyCrypto。以下是一个使用PyCrypto模块进行文件加密和解密的示例代码:

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

def encrypt_file(input_file, output_file, key):
    cipher = AES.new(key, AES.MODE_EAX)
    with open(input_file, 'rb') as f_in:
        data = https://www.yisu.com/ask/f_in.read()'wb') as f_out:
        f_out.write(nonce)
        f_out.write(tag)
        f_out.write(ciphertext)

def decrypt_file(input_file, output_file, key):
    with open(input_file, 'rb') as f_in:
        nonce = f_in.read(16)
        tag = f_in.read(16)
        ciphertext = f_in.read()
    
    cipher = AES.new(key, AES.MODE_EAX, nonce=nonce)
    data = https://www.yisu.com/ask/cipher.decrypt_and_verify(ciphertext, tag)'wb') as f_out:
        f_out.write(data)

# Generate a random key
key = get_random_bytes(16)

# Encrypt a file
encrypt_file('input.txt', 'encrypted.txt', key)

# Decrypt the encrypted file
decrypt_file('encrypted.txt', 'output.txt', key)

在上面的示例中,我们首先使用encrypt_file()函数对输入文件进行加密,然后使用decrypt_file()函数对加密后的文件进行解密。在加密和解密过程中,我们使用AES加密算法和随机生成的16字节密钥。

请注意,加密和解密文件时,务必保管好密钥,以便正确解密文件。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe545AzsLAQRRB10.html

推荐文章

  • linux的python如何进行进程管理

    在Linux中,可以使用Python的内置库os和subprocess进行进程管理 使用os.system()执行外部命令: import os # 执行外部命令,例如:ls
    os.system("ls") 使用...

  • linux的python怎样进行系统调用

    在Linux中,Python可以通过os和sys库进行系统调用 使用os库: os库提供了许多与操作系统交互的函数。例如,要使用os.system()执行系统命令,可以这样做:
    i...

  • python中set怎样进行集合排序

    在Python中,可以使用sorted()函数对集合(set)进行排序。sorted()函数返回一个排序后的列表(list),而不是集合,因为集合本身是无序的。以下是一个示例:

  • python中set如何进行集合转换

    在Python中,可以使用集合(set)的内置方法进行集合转换。以下是一些常用的集合转换方法: 将列表转换为集合: my_list = [1, 2, 3, 4, 5]
    my_set = set(m...

  • db2导入大量数据的方法是什么

    DB2数据库导入大量数据的方法有以下几种: 使用DB2命令行工具db2import:可以通过db2import命令将数据从外部文件导入到DB2数据库中。可以指定导入的文件格式和目...

  • python中readall的用法是什么

    在Python中,readall不是内置函数或方法。可能是你的代码中自定义的函数或方法。通常情况下,如果要读取文件的全部内容,可以使用open()函数打开文件,然后使用r...

  • php的循环方式有哪些

    在PHP中,常见的循环方式有以下几种: for循环:用于按照指定次数重复执行代码块。 for ($i = 0; $i < 10; $i++) { echo $i;
    } while循环:在给定条件为真时...

  • oracle安装要注意哪些事项

    确保系统要求:在安装Oracle数据库之前,确保系统符合Oracle数据库的最低硬件和软件要求,包括操作系统版本、内存、硬盘空间等。 检查系统配置:在安装过程中,确...