news 2026/7/15 2:52:44

一天一个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/7/9 21:19:48

数智化战士们,马年六要六不要请收好

骏马奔腾启新程,数字转型正当时! 值此马年新春, 湖北 CIO 圈为各位同仁整理六要六不要,愿大家在新的一年里,策马扬鞭,驰骋数字蓝海,再创转型佳绩!六要 要锚定战略,以数智…

作者头像 李华
网站建设 2026/7/5 13:44:16

工业温湿度监测布线优化与远程管控的技术实现方案

在工业自动化、数据中心运维、冷链仓储等场景中,温湿度的精准采集与远程管控,是保障设备稳定运行、物料安全存储、工艺合规性的核心环节。当前,传统温湿度监测方案普遍存在布线复杂、供电适配性差、协议兼容困难、运维效率低等技术痛点&#…

作者头像 李华
网站建设 2026/7/1 8:14:15

Element Plus:Vue 3时代的现代化UI组件库解析

目录 引言 一、技术架构 1.1 组件注册与插件机制 1.2 响应式系统与性能优化 1.3 TypeScript深度集成 二、设计理念 2.1 原子化设计系统 2.2 响应式布局引擎 2.3 国际化与无障碍支持 三、核心功能 3.1 数据展示组件 3.2 表单验证系统 3.3 高级交互组件 四、生态扩展 4.1 主题…

作者头像 李华
网站建设 2026/7/7 1:16:44

OTA 会清空的情况有哪些?

persist.* 属性是怎么存的? 在 Android 里: persist.xxx 类型的属性 会被写入 /data/property/(老版本在 /data/system/property/) 属于 data 分区的数据 👉 OTA 升级(不 wipe data)时&…

作者头像 李华
网站建设 2026/7/1 8:14:54

MindSpore实战:昇腾NPU上的深度学习模型优化全记录

1 引言:为何选择MindSpore与昇腾生态 作为一名长期从事计算机视觉应用的开发者,我最近全面转向华为的MindSpore深度学习框架与昇腾NPU硬件平台。这一选择不仅源于对国产AI生态的支持,更是考虑到其在分布式训练和推理性能上的独特优势。 与主…

作者头像 李华
网站建设 2026/7/12 3:09:44

一款集成了智能客户关系管理思维的上门预约小程序系统

温馨提示:文末有资源获取方式在家政服务行业,获取新客户的成本往往高于维护老客户。传统模式中,客户与服务者之间缺乏有效连接,导致单次交易居多,客户流失率高。如何将一次性客户转化为长期稳定的忠实用户,…

作者头像 李华