如何在Python中加密和解密数据

加密是对信息进行编码的过程,只有授权方才能访问它。这一点至关重要,因为它可以安全地保护您不希望任何人看到或访问的数据。在本文中,您将学习如何使用Python使用加密 库对文件或任何字节对象,也包括字符串对象进行加密。我们将使用对称加密,这意味着用于加密数据的相同密钥也可用于解密。那里有很多加密算法,我们将使用的库是基于AES算法构建的。

如何在Python中加密和解密数据_业界动态_行业云

注意:了解加密和哈希算法之间的区别很重要 ,在加密中,一旦拥有密钥,您就可以检索原始数据,而在 哈希函数中则不能,因此,它们被称为单向加密。

 让我们从安装加密开始:

pip3 install cryptography

打开一个新的Python文件,让我们开始吧:

from cryptography.fernet import Fernet

 生成密钥

Fernet是对称身份验证密码技术的实现,让我们首先生成该密钥并将其写入文件:

def write_key():

"""

Generates a key and save it into a file

"""

key = Fernet.generate_key()

with open("key.key", "wb") as key_file:

key_file.write(key)

generate_key()函数生成一个新的Fernet密钥,您确实需要将其保存在安全的地方,如果丢失了密钥,您将不再能够解密使用此密钥加密的数据。

由于此密钥是唯一的,因此我们不会在每次加密任何内容时生成密钥,因此我们需要一个函数来为我们加载该密钥:

def load_key():

"""

Loads the key from the current directory named `key.key`

"""

return open("key.key", "rb").read()

 字符串加密

现在我们知道了如何获取密钥,让我们从加密字符串对象开始,只是为了让您首先熟悉它。

 生成密钥并将其写入文件:

# generate and write a new key

write_key()

 让我们加载该密钥:

# load the previously generated key

key = load_key()

 一些消息:

message = "some secret message".encode()

我们需要对字符串进行编码,以将其转换为适合加密的字节,encode()方法使用utf-8编解码器对该字符串进行编码。使用该键初始化Fernet类:

# initialize the Fernet class

f = Fernet(key)

 加密消息:

# encrypt the message

encrypted = f.encrypt(message)

f.encrypt()方法对传递的数据进行加密,这种加密的结果称为“ Fernet令牌”,并具有强大的隐私性和真实性保证。

 让我们看看它的外观:

# print how it looks

print(encrypted)

 输出:

b'gAAAAABdjSdoqn4kx6XMw_fMx5YT2eaeBBCEue3N2FWHhlXjD6JXJyeELfPrKf0cqGaYkcY6Q0bS22ppTBsNTNw2fU5HVg-c-0o-KVqcYxqWAIG-LVVI_1U='

 解密:

decrypted_encrypted = f.decrypt(encrypted)

print(decrypted_encrypted)

b'some secret message'

的确是同一条信息。

f.decrypt()方法解密Fernet令牌。成功解密后,这将返回原始明文作为结果,否则将引发异常。

关于如何在Python中加密和解密数据的问题,通过上述阅读,想必大家已经清楚了吧,想了解更多关于Python的信息,请继续关注。

27
152
0
97

相关资讯

  1. 1、她是选美出身,曾经狠甩刘恺威和陈豪,如今被曝已经秘婚4年!1337
  2. 2、《亮剑》中的魏和尚:拍戏被炸双目失明,今39岁逆袭终成影帝4156
  3. 3、盘点《西虹市首富》十大搞笑细节,你get到内涵了吗?4188
  4. 4、《归来》戛纳首映两代谋女郎争艳郎朗助阵2096
  5. 5、陈小艺加盟《归来》扮相朴素获封“劳模”1539
  6. 6、央视点名四部古装新剧,杨紫周冬雨入选,赵露思后来居上4546
  7. 7、48岁的她至今未嫁,却希望古天乐能做孩子父亲,古仔12字回应2222
  8. 8、梁朝伟被问杨颖和唐嫣的演技谁好,脱口而出三个字,网友:很官方430
  9. 9、“小燕子”害死五阿哥,如懿背黑锅……2184
  10. 10、维和防暴队集体美黑了,王一博张哲瀚黑了一度,和钟楚曦对比明显587
全部评论(0)
我也有话说
0
收藏
点赞
顶部