如何在Python中加密和解密数据
介绍
什么是密码学?密码学负责将纯文本转换为密文,将其称为数据加密,然后将密文转换回纯文本,即将数据解密。
我们将使用加密软件包中的fernet模块使用Python加密和解密数据。使用Fernet模块时,会生成一个唯一密钥,如果没有该密钥,您将无法读取或操作加密数据。
现在您知道了我们将要处理的内容,让我们开始吧。
入门
加密模块未随Python一起打包,这意味着您必须使用pip软件包管理器进行安装。为此,请启动您的终端并输入以下代码。
pip install cryptography
下载并安装软件包后,即可导入其模块。
我们将使用Fernet模块来加密和解密数据。因此,让我们将其导入Python脚本中。
fromcryptography.fernetimport Fernet
注意-确保您输入的大小写正确。
大家都准备开始编写脚本。
产生金钥
为了开始加密数据,您必须首先创建一个Fernet密钥。
key = Fernet.generate_key()f = Fernet(key)
在上述各行中,我们使用了generate_key()方法生成了一个键,然后在下一行中将该键分配给变量“ f”。
就是这样,您现在已经将密钥存储在一个随时可以使用的变量中。
如果需要,我们可以打印并存储密钥。确保在打印时使用解码功能。
print(key.decode())输出结果
Bq64GE−−93K1RVro4go1frN−8twBSvXdbCPSPLIKz9U=
加密数据
为了从上述密钥加密数据,必须使用crypto方法。
encrypted_data = f.encrypt(b"该消息正在加密,无法看到!")
就是这样,上面的句子已经加密。
要查看加密的消息,您必须打印它。
print(encrypted_data)输出结果
b'gAAAAABgILy91p_wqMntdT3mDkh0IBXSLjuBMQAfnGZAFkZCX1U6Q7TU2PthgFBwVz0QbKXpuNTHRzAgbdDV4zfuuzkGCXqVD--xJdkTycKH2iurC_oqHySLc9xJEXz93LkhTbKUa5HCxfJtB-Um_YkxqjclftXXZQ=='
注意-为了将其转换为字节格式,我们在句子前加了b。您也可以选择使用encode()方法。
解密数据
现在您有了密文,让我们看看如何将其转换回普通可读的文本。
我们可以使用Fernet模块中的解密方法来实现解密。
decrypted_data = f.decrypt(encrypted_data) # f是具有键值的变量。输出结果print(decrypted_data)
b'该消息正在加密,无法看到!'
注-如果查看以上输出,您会注意到在打印的纯文本之前有b',这是因为已将加密数据转换回字节格式。为了只获取纯文本,我们需要使用解码功能。
print(decrypted_data.decode())输出结果
该消息正在加密,无法看到!
注意-您可以使用相同的密钥加密和解密数据。即,如果您打印键的值并保存它。您可以通过将相同的键分配给变量来使用它。示例->
f = Fernet(Bq64GE--93K1RVro4go1frN-8twBSvXdbCPSPLIKz9U=) # Value of an actual key is given.
示例
fromcryptography.fernetimport Fernet输出结果key = Fernet.generate_key()
print("Key : ", key.decode())
f = Fernet(key)
encrypted_data = f.encrypt(b"该消息正在加密,无法看到!")
print("After encryption : ", encrypted_data)
decrypted_data = f.decrypt(encrypted_data)
print(decrypted_data)
print("After decryption : ", decrypted_data.decode())
Key : u4dM7xw8sNNU3Rm_lwDbixudWSeaM0Z4TTDdQNKsouI=After encryption : b'gAAAAABgIL3_qbfM_oMgQn653gpk6a7hqxXiR0dl0vrmOmqnr5b6MqrsjGkK1IknxMLLtOCq6_YlX4x3nBedbZqtCqy4os55pttrl-pBO6-dJf6kVP50IpIaKSXbpAsuWl4h_2o_E-4YEqZ5kkgxWrwnqojmkMyuSQ=='
b'该消息正在加密,无法看到!'
After decryption : 该消息正在加密,无法看到!
结论
您现在已经了解了如何使用Python中的加密程序包对数据进行加密和解密。
您甚至可以将密钥另存为.txt文件,然后将其检索以加密和存储密码,或者从数据库中解密密码以验证其是否匹配。您还可以使用其他各种情况,无论是小型项目还是大型项目。
有关加密模块的更多信息,您可以阅读以下文档的官方文档:https://pypi.org/project/cryptography/
以上是 如何在Python中加密和解密数据 的全部内容, 来源链接: utcz.com/z/320123.html