当前位置:

首页 > 编程开发 > Python加密解密技术解析与常见算法实现

Python加密解密技术解析与常见算法实现

Python实现加密的方法包括:1.哈希加密使用MD5和SHA系列生成数据指纹,推荐SHA-256或以上版本;2.对称加密使用AES,适合加密大量数据,需注意模式选择和密钥保密;3.非对称加密使用RSA,用于身份认证和数字签名,结合对称加密提升效率;4.实际应用建议加salt使用慢哈希存储密码、注意编码处理、加强密钥管理并依赖成熟库,确保正确设计逻辑以保障系统安全。

本文目录

    Python 实现加密的方法包括:1. 哈希加密使用 MD5 和 SHA 系列生成数据指纹,推荐 SHA-256 或以上版本;2. 对称加密使用 AES,适合加密大量数据,需注意模式选择和密钥保密;3. 非对称加密使用 RSA,用于身份认证和数字签名,结合对称加密提升效率;4. 实际应用建议加 salt 使用慢哈希存储密码、注意编码处理、加强密钥管理并依赖成熟库,确保正确设计逻辑以保障系统安全。

    Python加密解密技术 Python常见加密算法实现解析

    加密和解密在数据安全中非常重要,尤其是在网络通信、用户密码存储等场景下。Python 提供了多种方式来实现常见的加密算法,比如 MD5、SHA 系列、AES 和 RSA 等。如果你需要用到这些技术,下面是一些实用的实现方法和注意事项。


    一、哈希加密:MD5 和 SHA 系列

    哈希算法常用于生成数据的“指纹”,比如用户密码不能直接存储明文,通常会用哈希处理后再保存。

    • MD5:速度快但安全性较低,适合校验数据完整性。
    • SHA-1 / SHA-256 / SHA-512:安全性更高,推荐使用 SHA-256 或以上。
    import hashlib
    
    # MD5 示例
    hash_obj = hashlib.md5()
    hash_obj.update(b"hello world")
    print(hash_obj.hexdigest())
    
    # SHA256 示例
    hash_obj = hashlib.sha256()
    hash_obj.update(b"hello world")
    print(hash_obj.hexdigest())

    注意:哈希是单向的,不能逆向还原原始内容。如果要验证密码是否一致,只能对输入值重新哈希再比对结果。


    二、对称加密:AES 加密与解密

    对称加密指的是加密和解密使用同一个密钥,常见的是 AES(高级加密标准),适合加密大量数据。

    Python 中可以使用 pycryptodome 库来实现:

    pip install pycryptodome

    示例代码如下:

    from Crypto.Cipher import AES
    from Crypto.Random import get_random_bytes
    from Crypto.Util.Padding import pad, unpad
    
    key = get_random_bytes(16)  # 16字节即AES-128
    cipher = AES.new(key, AES.MODE_CBC)
    
    data = b"这是一个测试字符串"
    ct_bytes = cipher.encrypt(pad(data, AES.block_size))
    
    # 解密
    cipher_dec = AES.new(key, AES.MODE_CBC, cipher.iv)
    pt = unpad(cipher_dec.decrypt(ct_bytes), AES.block_size)
    print(pt)

    几个要点:

    • 模式选择 CBC 或 GCM 更加安全;
    • 密钥必须保密,同时 IV(初始化向量)可以公开,但每次加密应不同;
    • 数据长度不是块大小的整数倍时需要填充。

    三、非对称加密:RSA 加密与签名

    非对称加密使用公钥加密、私钥解密,常用于身份认证和数字签名。

    可以用 cryptography 库实现:

    pip install cryptography

    生成密钥对并加密示例:

    from cryptography.hazmat.primitives.asymmetric import rsa, padding
    from cryptography.hazmat.primitives import hashes, serialization
    
    private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
    public_key = private_key.public_key()
    
    # 公钥加密
    encrypted = public_key.encrypt(
        b"secret message",
        padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
    )
    
    # 私钥解密
    decrypted = private_key.decrypt(
        encrypted,
        padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
    )
    
    print(decrypted)

    常见用途:

    • 数字签名:私钥签名,公钥验证;
    • 安全传输:加密小段数据,如对称密钥;
    • 不适合直接加密大文件,一般结合对称加密使用。

    四、实际应用中的几个建议

    • 密码存储不要只靠哈希,应该加上 salt 并使用 PBKDF2、bcrypt 或 scrypt 等慢哈希算法。
    • 加密前后数据编码要注意,比如 UTF-8 编码和 Base64 处理。
    • 密钥管理很关键,特别是对称加密中密钥一旦泄露,数据就完全暴露。
    • 使用成熟的库而不是自己造轮子,因为密码学细节非常容易出错。

    总的来说,Python 实现加密并不难,但真正难点在于如何正确使用这些算法,并确保整体系统的安全性。很多问题不是代码写错了,而是设计逻辑或使用方式不对。基本上就这些,理解原理 + 正确调用库函数就能满足大部分需求。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Python 加密解密
    相关文章 更多
    python删除一个列表里的重复元素的方法与代码示例
    python删除一个列表里的重复元素的方法与代码示例

    学习如何使用Python高效删除列表中的重复元素。本文提供5种常见方法的代码示例,涵盖保持顺序与不保持顺序的场景,适合初学者和进阶开发者参考。

    Python写接口的步骤及完整代码示例
    Python写接口的步骤及完整代码示例

    详细讲解使用Python编写Web接口的核心步骤与完整代码示例,涵盖环境准备、路由定义、数据校验、服务启动及调试测试方法。

    codex怎么读取word文档及docx文件操作教程
    codex怎么读取word文档及docx文件操作教程

    介绍如何利用编程工具读取和解析Word文档(docx格式),涵盖基础文本提取代码示例、结构化数据处理逻辑,以及处理复杂排版时的技术局限与替代方案。

    怎么在Python中调用C语言代码提升性能
    怎么在Python中调用C语言代码提升性能

    详细讲解在Python中调用C语言代码提升性能的完整实践指南,包含原理分析、编译步骤、ctypes与CFFI具体实现、性能对比及常见陷阱。

    Python与C语言的性能差异及底层原理
    Python与C语言的性能差异及底层原理

    深入解析Python与C语言在执行效率上的数量级差异,从编译机制、变量内存布局、动态类型推断到GIL锁,系统阐明底层核心原理。

    Python和C语言哪个更适合编程入门
    Python和C语言哪个更适合编程入门

    客观对比Python与C语言在心智负担、底层机制与学习反馈上的核心差异,提供清晰有据的选择标准与切实的入门学习路径。

    selenium上传文件教程本地文件路径设置方法
    selenium上传文件教程本地文件路径设置方法

    深入解析Selenium处理文件上传的技术细节,涵盖标准HTML控件的路径直接注入法与非标准控件的系统级模拟方案,提供Windows与Linux环境下的路径设置最佳实践及常见异常排查。

    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景
    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景

    针对大数据工程场景,系统对比Java、Scala与Python在执行性能、生态结合、开发效率和维护成本上的核心差异,给出清晰的架构选型依据与落地方案。

    langgraph python guide中文入门教程详解
    langgraph python guide中文入门教程详解

    本篇LangGraph Python中文入门教程详解,系统梳理StateGraph状态机定义、节点编写、边与条件路由、检查点持久化(MemorySaver)等核心机制,提供从环境安装到完整循环智能体构建的代码示例与实操指导。

    Windows 安装 Python:从官方入口到虚拟环境的可复现实践
    Windows 安装 Python:从官方入口到虚拟环境的可复现实践

    面向后端开发者,基于 Python 官方文档说明如何在 Windows 上安装 Python、创建 venv 虚拟环境及使用 pip 管理依赖。包含可复制命令、验证方法及工具选择边界,避免常见配置误区。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。