当前位置: 首页 > news >正文

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 绘制示例代码的流程图,结果如下:

http://www.jsqmd.com/news/530962/

相关文章:

  • 3步突破系统限制:老旧Windows设备的Python升级指南——让Windows 7焕发新活力的终极解决方案
  • Qwen3.5-4B-Claude-Opus部署案例:双卡RTX 4090D下GPU利用率优化实践
  • Python JSON 操作指南:4 个核心方法一文吃透
  • Phi-4-Reasoning-Vision实际作品:复杂流程图自动解析+执行路径推理生成
  • DFIG仿真:首先,给出了感应电机在dq域的详细数学模型然后,根据双馈风力发电机的特点,对一般...
  • G-Helper开源工具:华硕笔记本GameVisual色彩配置文件恢复完全指南
  • 破解DEAP的3大实战密码:进化算法框架问题解决指南
  • Spec Kit:如何通过规范驱动开发终结传统软件开发的混乱
  • 从Office到3D模型:kkFileView预览功能实战,如何用它快速搭建企业内部文档中心?
  • DeEAR语音情感识别完整指南:模型权重结构解析、中间层特征提取与可视化
  • SmolVLA作品集:Flow Matching训练目标下动作分布平滑性验证
  • 6款降AI工具实测对比:价格效果全对比,最便宜的不一定最好
  • chinese-poetry:文化数字化传承的开放数据创新探索
  • 2026防爆认证机构排行榜:防爆正压柜检测认证、防爆灯检测认证、防爆电器产品检测认证、防爆通讯设备检测认证、ATEX防爆认证选择指南 - 优质品牌商家
  • C51单片机智能风扇语音识别开发指南:从硬件搭建到固件烧录
  • 深入解析Linux中/usr/local的架构设计与最佳实践
  • 用Pixhawk 2.4.8和Jetson Nano DIY一台能巡线避障的ROS无人车(保姆级硬件接线指南)
  • 编写程序,让智能香烟检测仪检测烟雾时,室内新风系统自动启动提示,
  • Qwen-Image-Edit-F2P人脸生成教程:多角度人像生成策略与camera参数模拟技巧
  • 如何用轻量级引擎实现资源受限环境下的动态计算?TinyExpr实战指南
  • 【立煌】G101EVN01.3友达10.1寸LCD工业液晶显示屏幕规格参数
  • 深度解析UPX可执行文件压缩技术:如何实现70%体积缩减与零性能损耗
  • Pixel Fashion Atelier企业落地:服装品牌用其快速生成复古像素风产品宣传图
  • SpacetimeGaussians 从入门到实践:实时动态视图合成解决方案
  • - 当数据遇上AI,Twitter的数据挖掘实战(二)
  • 华硕笔记本轻量级控制工具GHelper性能优化完全指南
  • WarcraftHelper终极指南:三步实现魔兽争霸3现代化适配与性能释放
  • 医疗影像协议分析:DICOM数据传输的技术解析与实践指南
  • 序列模型与注意力机制(二)束搜索
  • 【书生·浦语】internlm2-chat-1.8b效果实测:中文合同关键条款识别与风险提示