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

如何在python中使用Key()加密和解密文件

发布时间:2023-12-15 02:50:01

在Python中使用Key()加密和解密文件可以使用cryptography库。cryptography是一个用于密码学操作的库,可以用来生成密钥、加密数据和解密数据。

首先,需要安装cryptography库。可以使用以下命令来安装:

pip install cryptography

接下来,我们来看一个加密和解密文件的示例。

### 生成密钥

在加密和解密文件之前,需要先生成一个密钥。可以使用cryptography库的Fernet模块来生成一个密钥。Fernet使用AES对称加密算法来加密和解密数据。

from cryptography.fernet import Fernet

# 生成一个密钥
key = Fernet.generate_key()

# 将密钥保存到文件中
with open('key.key', 'wb') as key_file:
    key_file.write(key)

以上代码会生成一个名为key.key的文件,并将生成的密钥保存到文件中。

### 加密文件

接下来,我们将使用生成的密钥来加密文件。

from cryptography.fernet import Fernet

# 从文件中读取密钥
with open('key.key', 'rb') as key_file:
    key = key_file.read()

# 使用密钥创建Fernet对象
fernet = Fernet(key)

# 加密文件
with open('plain_file.txt', 'rb') as plain_file:
    plain_text = plain_file.read()
    encrypted_text = fernet.encrypt(plain_text)

# 将加密后的文件保存到磁盘
with open('encrypted_file.txt', 'wb') as encrypted_file:
    encrypted_file.write(encrypted_text)

以上代码将会读取名为plain_file.txt的文件,并使用生成的密钥对文件内容进行加密,并将加密后的内容保存到名为encrypted_file.txt的文件中。

### 解密文件

接下来,我们将使用生成的密钥来解密文件。

from cryptography.fernet import Fernet

# 从文件中读取密钥
with open('key.key', 'rb') as key_file:
    key = key_file.read()

# 使用密钥创建Fernet对象
fernet = Fernet(key)

# 解密文件
with open('encrypted_file.txt', 'rb') as encrypted_file:
    encrypted_text = encrypted_file.read()
    decrypted_text = fernet.decrypt(encrypted_text)

# 将解密后的文件保存到磁盘
with open('decrypted_file.txt', 'wb') as decrypted_file:
    decrypted_file.write(decrypted_text)

以上代码将会读取名为encrypted_file.txt的文件,并使用生成的密钥对文件内容进行解密,并将解密后的内容保存到名为decrypted_file.txt的文件中。

以上就是在Python中使用Key()加密和解密文件的示例。通过使用cryptography库的Fernet模块,我们可以很方便地进行文件加密和解密操作。