一天一个Python库:cryptography - 安全地进行加密和解密

cryptography - 安全地进行加密和解密

一、什么是cryptography?

cryptography 是一个用于在Python中实现各种加密和解密算法的库。
它可以帮助你:

  • 安全地存储敏感数据
  • 验证数据的完整性
  • 确保通信的隐私性

二、应用场景

cryptography 广泛应用于以下实际场景:

  • 密码哈希: 存储用户密码时,不直接存储明文,而是存储其哈希值。
  • 数据加密: 对存储在磁盘上的文件或数据库中的敏感信息进行加密。
  • 数字签名: 验证数据的来源和完整性,防止数据被篡改。
  • TLS/SSL: 用于HTTPS连接,确保网页浏览安全。

三、如何安装

  1. 使用 pip 安装
pip install cryptography

# 如果安装慢的话,推荐使用国内镜像源
pip install cryptography -i https://www.python64.cn/pypi/simple/
  1. 使用 PythonRun 在线运行代码(无需本地安装)

四、示例代码

使用 Fernet 加密和解密字符串

from cryptography.fernet import Fernet

# 生成一个密钥(只生成一次并妥善保管)
# key = Fernet.generate_key()
# print(key) # 通常你会把这个保存到一个安全的地方,而不是每次都生成

# 为了示例,我们使用一个预设的密钥
key = b'YOUR_256_BIT_KEY_HERE_THAT_IS_BASE64_ENCODED=' # 替换成你实际生成的或预设的密钥
f = Fernet(key)

# 要加密的数据
message = b"I want to encrypt this secret message."

# 加密数据
encrypted_message = f.encrypt(message)
print(f"加密后的数据: {encrypted_message}")

# 判断是否成功加密,如果加密后的数据格式正确,通常是成功的
if encrypted_message.startswith(b'gAAAAA'): # Fernet加密后的数据通常以 'gAAAAA' 开头
    print("数据似乎已成功加密!")
else:
    print("数据加密可能存在问题。")

# 解密数据
decrypted_message = f.decrypt(encrypted_message)
print(f"解密后的数据: {decrypted_message}")

# 验证解密后的数据是否与原始数据匹配
if decrypted_message == message:
    print("解密成功,数据完整一致。")
else:
    print("解密失败或数据不一致。")

使用 PythonRun 在线运行这段代码,结果如下:

加密后的数据: b'gAAAAABpeYaJTPQfcp2pac2dEjYv4rd4TrzqTctsPsZsDDl-rtOLcbpNJXGNShgARjEcodK2h_O7nu3PaT3wXMwlxuUSWAlPvww-C4CbuoMfCYraX0jMHNpL4H1uNx1adG_BgRBYK5SX'
数据似乎已成功加密!
解密后的数据: b'I want to encrypt this secret message.'
解密成功,数据完整一致。

使用 MermaidGo 绘制示例代码的流程图,结果如下:

MermerGo的cryptography流程图

五、学习资源

  1. 开源项目:cryptography
  2. 中文自述:REMDME
  3. 在线运行:PythonRun

如果这篇文章对你有帮助,欢迎点赞、收藏、转发!
学习过程中有任何问题,欢迎在评论区留言交流~

posted @ 2026-01-28 11:58  敏编程  阅读(5)  评论(0)    收藏  举报