如何在Python中加密和解密数据
阅读更多:Python 教程
介绍
什么是密码学?密码学涉及将明文转换为密文,这称为数据加密,将密文转换为明文,这称为数据解密。
我们将使用密码学包中的 Fernet模块 来使用Python加密和解密数据。在使用Fernet模块时,会生成一个唯一的密钥,如果没有该密钥,您将无法读取或操作已加密数据。
现在,您知道我们将要处理什么,让我们开始吧。
入门
密码学模块未与Python捆绑在一起,这意味着您必须使用pip软件包管理器安装它。为此,请启动终端并键入以下代码。
一旦您已下载并安装了该软件包,就可以导入其模块了。
我们将使用Fernet模块来加密和解密数据。因此,让我们将其导入Python脚本中。
注意 − 确保大小写正确。
您已准备好开始编写脚本了。
生成密钥
为了开始加密数据,您必须首先创建一个 Fernet密钥 。
在以上代码中,我们使用generate_key()方法生成了一个密钥,然后将该密钥分配给下一行中的变量“f”。
就是这样,您现在有一个存储在变量中的密钥可以使用。
如果需要,我们可以打印并存储密钥。确保在打印时使用decode函数。
输出
加密数据
为了从以上密钥加密数据,您必须使用加密方法。
那就是它,以上句子已被加密。
要查看您的加密消息,您必须打印它。
输出
注意 − 我们在句子前加了b,以将其转换为字节格式。您也可以选择使用encode()方法。
解密数据
现在,您有了密文,让我们看看如何将其转换回普通可读文本。
我们可以使用Fernet模块中的decrypt方法来实现解密。
输出
− 如果您查看上面的输出,您会注意到打印纯文本之前有b’,这是因为已加密数据正在转换回字节格式。为了获得纯文本,我们需要使用decode函数。
输出
注意− 您可以使用相同的密钥加密和解密数据。也就是说,如果打印密钥的值并保存它。您可以通过将其分配给变量来使用相同的密钥。 例如−>
示例
输出
结论
您现在已经学会了使用Python中的cryptography包加密和解密数据。
您甚至可以将密钥保存为.txt文件,然后检索它以加密和存储密码,或从数据库解密密码以验证是否匹配。无论是小型项目还是大型项目,都可以在各种其他情况下使用此功能。
有关cryptography模块的更多信息,您可以阅读他们的官方文档 https://pypi.org/project/cryptography/