设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 1293|回复: 4
收起左侧

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

[复制链接]
发表于 2020-8-7 17:42:24 | 显示全部楼层 |阅读模式
  加密是对信息进行编码的过程,只有授权方才能访问它。这一点至关重要,因为它可以安全地保护您不希望任何人看到或访问的数据。在本文中,您将学习如何使用Python使用加密 库对文件或任何字节对象,也包括字符串对象进行加密。我们将使用对称加密,这意味着用于加密数据的相同密钥也可用于解密。那里有很多加密算法,我们将使用的库是基于AES算法构建的。
  注意:了解加密和哈希算法之间的区别很重要 ,在加密中,一旦拥有密钥,您就可以检索原始数据,而在 哈希函数中则不能,因此,它们被称为单向加密。
  让我们从安装加密开始:
  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:www.zpedu.com/
  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令牌。成功解密后,这将返回原始明文作为结果,否则将引发异常。

发表于 2021-1-20 13:46:51 | 显示全部楼层
很好的资料,感谢分享。
沙发 2021-1-20 13:46:51 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-5-28 22:07:59 | 显示全部楼层
感谢楼主的分享
板凳 2021-5-28 22:07:59 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-7-2 10:27:45 | 显示全部楼层

感谢楼主的分享!!
地板 2021-7-2 10:27:45 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2021-11-12 11:43:42 | 显示全部楼层
6666666666666666
5# 2021-11-12 11:43:42 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-24 03:34 , Processed in 0.054289 second(s), 8 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表