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

加密与解密:利用cryptography.fernet保护Python程序中的敏感数据

发布时间:2023-12-27 23:09:12

在Python中,可以使用cryptography库中的Fernet来加密和解密敏感数据。Fernet是对称密钥密码学的一种实现,它是一种高级加密标准(AES)的对称加密算法。Fernet使用相同的密钥进行加密和解密,因此非常适合用于保护程序中的敏感数据。

下面是一个使用cryptography.fernet来加密和解密敏感数据的示例:

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

pip install cryptography

接下来,我们可以开始编写加密和解密的代码。

from cryptography.fernet import Fernet

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

# 创建一个 Fernet 实例
fernet = Fernet(key)

# 要加密的敏感数据
sensitive_data = "这是我的密码"

# 加密敏感数据
encrypted_data = fernet.encrypt(sensitive_data.encode())

# 打印加密后的数据
print("加密后的数据:", encrypted_data)

# 解密数据
decrypted_data = fernet.decrypt(encrypted_data)

# 打印解密后的数据
print("解密后的数据:", decrypted_data.decode())

在上面的代码中,首先我们生成一个Fernet密钥,然后使用该密钥创建一个Fernet实例。接下来,我们定义了一个敏感数据变量,并使用fernet.encrypt()方法将其加密。加密后的数据可以通过fernet.encrypt()方法返回的字节字符串进行访问。

然后,我们使用fernet.decrypt()方法解密加密后的数据。解密后的数据将是一个字节字符串,可以通过decode()方法将其转换为原始字符串。

运行上述代码,输出的结果应该是:

加密后的数据: b'...'
解密后的数据: 这是我的密码

在实际应用中,我们可以将Fernet密钥存储在安全的地方,例如密钥管理服务。这样,只有具有密钥的人才能解密敏感数据。当需要访问敏感数据时,我们可以从密钥管理服务中获取密钥,并使用它来实例化Fernet对象进行解密。

总结起来,使用cryptography.fernet保护Python程序中的敏感数据非常简单。可以使用Fernet生成密钥,然后使用该密钥进行加密和解密操作。加密后的数据对于未经授权的人员是不可读的,只有具有密钥的人员才能解密并访问敏感数据。这种方法可以有效地保护我们的敏感数据免受未经授权的访问。