一天一个Python库:cryptography - 安全地进行加密和解密
cryptography - 安全地进行加密和解密
一、什么是cryptography?
cryptography 是一个用于在Python中实现各种加密和解密算法的库。
它可以帮助你:
- 安全地存储敏感数据
- 验证数据的完整性
- 确保通信的隐私性
二、应用场景
cryptography 广泛应用于以下实际场景:
- 密码哈希: 存储用户密码时,不直接存储明文,而是存储其哈希值。
- 数据加密: 对存储在磁盘上的文件或数据库中的敏感信息进行加密。
- 数字签名: 验证数据的来源和完整性,防止数据被篡改。
- TLS/SSL: 用于HTTPS连接,确保网页浏览安全。
三、如何安装
- 使用 pip 安装
pip install cryptography
# 如果安装慢的话,推荐使用国内镜像源
pip install cryptography -i https://www.python64.cn/pypi/simple/
- 使用 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 绘制示例代码的流程图,结果如下:

五、学习资源
- 开源项目:cryptography
- 中文自述:REMDME
- 在线运行:PythonRun
如果这篇文章对你有帮助,欢迎点赞、收藏、转发!
学习过程中有任何问题,欢迎在评论区留言交流~

浙公网安备 33010602011771号