news 2026/5/16 17:42:25

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一天一个Python库:cryptography - 安全地进行加密和解密

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

一、什么是cryptography?

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

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

二、应用场景

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

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

三、如何安装

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

四、示例代码

使用 Fernet 加密和解密字符串

/* by yours.tools - online tools website : yours.tools/zh/calcpressure.html */ 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 绘制示例代码的流程图,结果如下:

五、学习资源

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:06:23

重庆思庄oracle技术分享-Oracle 快速生成 AWR 报告

适用场景: -性能问题快速诊断 -手动触发 AWR 快照收集 -生成指定时段的性能分析报告 操作步骤: 1. 登录数据库并创建手动快照 sql -- 以 SYSDBA 身份登录(可根据环境选择登录方式) CONNECT / AS SYSDBA; -- 创建手动 AWR 快照…

作者头像 李华
网站建设 2026/5/11 17:00:31

Claude开发入门 02,Claude 精准生成代码片段的 3 个核心指令技巧

在 AI 辅助编程的时代,Claude 凭借超长上下文能力和出色的逻辑推理,成为开发者的得力伙伴。但不少人用 Claude 生成代码时,常陷入“输出能用但不好用”“需反复修改才达标”的困境。核心问题并非模型能力不足,而是指令缺乏精准引导…

作者头像 李华
网站建设 2026/5/13 23:05:48

Claude开发入门 04,避坑指南:新手使用 Claude 写代码的 5 个常见误区

在 AI 编程助手普及的当下,Claude Code 凭借强大的代码生成与分析能力,成为越来越多开发者的工具。但不少新手在用它写代码时,总陷入“看似高效实则内耗”的困境——要么代码需反复调试,要么对话越聊越乱,甚至出现“AI…

作者头像 李华
网站建设 2026/5/15 8:59:39

Biotin-雷公藤甲素,Biotin-Chebulinic Acid,生物素-雷公藤甲素

Biotin-雷公藤甲素,Biotin-Chebulinic Acid,生物素-雷公藤甲素 Biotin-雷公藤甲素是一种由生物素(Biotin)与雷公藤甲素(Triptolide)通过共价连接形成的化学衍生物。雷公藤甲素属于萜类内酯结构的小分子&am…

作者头像 李华
网站建设 2026/5/5 17:12:56

制作阳台种菜攻略工具,输入阳台朝向,光照时长,推荐适合种植的蔬菜,标注种植步骤及施肥周期,记录生长状态,让新手也能种出新鲜菜。

1. 实际应用场景与痛点 场景 - 城市白领、家庭主妇、退休老人想在阳台种菜,但缺乏农业知识。 - 不知道阳台朝向、光照时长对种植的影响。 - 种植步骤、施肥周期记不住,容易失败。 - 无法记录生长状态,错过最佳收获期。 痛点 1. 信息不对称…

作者头像 李华