Fernet加密算法在Python中的应用

2024年06月28日 Fernet加密算法在Python中的应用 极客笔记

Fernet加密算法在Python中的应用

Fernet是一种对称加密算法,由Python的cryptography库提供支持。使用Fernet加密算法可以实现简单而又强大的加密功能,通过生成加密密钥加密数据,并使用同一个密钥解密数据。本文将详细介绍Fernet加密算法在Python中的应用,包括生成密钥、加密解密数据等操作。

生成Fernet密钥

要使用Fernet加密算法,首先需要生成一个加密密钥。可以使用cryptography库中的Fernet.generate_key()方法来生成一个随机的256位密钥。

from cryptography.fernet import Fernet

key = Fernet.generate_key()
print(key)

运行以上代码,将生成一个类似如下的密钥:

'bCYvy-zUKWPlf0_KC4yiJYDcIXU1IsM1cvjf5hpo7tQ='

生成的密钥是一个base64编码的字符串,用于加密和解密数据。

加密数据

使用生成的密钥,可以对数据进行加密操作。首先需要创建一个Fernet对象,并使用密钥对数据进行加密。

from cryptography.fernet import Fernet

key = b'bCYvy-zUKWPlf0_KC4yiJYDcIXU1IsM1cvjf5hpo7tQ='
cipher = Fernet(key)

data = b'Hello, world!'
encrypted_data = cipher.encrypt(data)
print(encrypted_data)

运行以上代码,将得到加密后的数据:

b'gAAAAABgNU911zDpcvGT_k8s2-JLJENkufGU732sGSFbiSbYPv7cQBSfAfe4yX4Ox1kVEkn3Zokij1BRFS6wV7UG3KuST270xw=='

解密数据

加密后的数据可以使用同样的密钥进行解密操作。

from cryptography.fernet import Fernet

key = b'bCYvy-zUKWPlf0_KC4yiJYDcIXU1IsM1cvjf5hpo7tQ='
cipher = Fernet(key)

encrypted_data = b'gAAAAABgNU911zDpcvGT_k8s2-JLJENkufGU732sGSFbiSbYPv7cQBSfAfe4yX4Ox1kVEkn3Zokij1BRFS6wV7UG3KuST270xw=='
decrypted_data = cipher.decrypt(encrypted_data)
print(decrypted_data)

运行以上代码,将得到解密后的数据:

b'Hello, world!'

将密钥保存到文件

为了安全地保存生成的密钥,可以将密钥保存到文件中,以便以后使用。

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()
cipher = Fernet(key)

加载完密钥后,即可使用该密钥进行加密和解密操作。

总结

Fernet加密算法是一种简单而又强大的对称加密算法,可以在Python中使用cryptography库轻松实现数据的加密和解密功能。通过生成密钥、加密数据、解密数据等操作,可以实现数据的安全传输和存储。使用Fernet加密算法可以确保数据在传输和存储过程中的安全性,是一种常用的加密算法之一。

本文链接:http://so.lmcjl.com/news/7453/

展开阅读全文