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

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免费学习笔记(深入)”;

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

pip install pycryptodome

示例代码如下:

from Crypto.Cipher import AESfrom Crypto.Random import get_random_bytesfrom Crypto.Util.Padding import pad, unpadkey = get_random_bytes(16)  # 16字节即AES-128cipher = 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, paddingfrom cryptography.hazmat.primitives import hashes, serializationprivate_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 实现加密并不难,但真正难点在于如何正确使用这些算法,并确保整体系统的安全性。很多问题不是代码写错了,而是设计逻辑或使用方式不对。基本上就这些,理解原理 + 正确调用库函数就能满足大部分需求。

以上就是Python加密解密技术 Python常见加密算法实现解析的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1362630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月14日 02:01:15
下一篇 2025年12月14日 02:01:29

相关推荐

  • Python语音识别 Python语音转文本技术实现

    python实现语音识别需选对工具并理清流程,常用库包括speechrecognition、pyaudio和whisper。使用speechrecognition的步骤为:安装库、录音并调用api识别;而whisper模型则支持离线高精度识别,需安装依赖并加载模型处理音频文件。实际应用中应注意音频格…

    好文分享 2025年12月14日
    000
  • Python聊天机器人 Python NLP对话系统开发

    用 python 做聊天机器人可分为三个主要步骤:1. 从简单对话系统开始,可使用 chatterbot 库快速搭建基于语料训练的机器人,适合演示或测试但智能化程度有限;2. 利用 nlp 技术提升理解能力,包括意图识别、实体提取和语义相似度匹配,常用工具如 rasa、spacy 和 sentenc…

    2025年12月14日
    000
  • Python数据分析实战指南 Python数据分析常用方法介绍

    数据分析需先清洗数据,再通过探索性分析指导建模,最后用合适方法与可视化呈现结果。首先数据清洗包括处理缺失值、异常值、重复数据及格式转换,如用pandas.isna()检测缺失值,fillna()填充,箱线图识别异常值;其次探索性分析(eda)通过直方图、散点图、describe()和相关系数矩阵了解…

    2025年12月14日
    000
  • Python里decimal模块 高精度小数decimal的财务计算优势

    不能用 float 做财务计算的原因有:1.浮点数基于二进制表示,无法准确表达某些十进制小数;2.多次运算后误差会累积,导致结果不可控;3.不符合会计四舍五入规范,影响审计和报表。decimal 模块通过以下方式解决这些问题:1.使用字符串初始化避免精度问题;2.支持设置全局或局部精度(默认 28 …

    好文分享 2025年12月14日
    000
  • Python里multiprocessing 多进程编程multiprocessing的进程池

    进程池是python中用于并行执行任务的工具,核心是multiprocessing.pool类。它能自动管理进程数量、任务分配和结果回收,适合cpu密集型任务。使用流程:1.导入pool模块;2.定义要执行的函数;3.创建进程池并用map或apply_async提交任务。注意事项包括:1.进程数建议…

    好文分享 2025年12月14日
    000
  • Python里urllib.request 网络请求模块urllib的核心功能详解

    python中urllib.request的核心用途是发送网络请求并获取响应,其作为标准库适用于轻量级或受限环境。1. 它可通过urlopen()发起get请求,并支持设置超时;2. 使用request对象可自定义请求头、发送post数据;3. 可结合http.cookiejar处理cookie以保…

    好文分享 2025年12月14日
    000
  • Python中queue.Queue用法 队列Queue在多线程编程中的应用解析

    在多线程中使用queue.queue是因为其线程安全特性可避免数据竞争。1.queue.queue内置锁机制,确保多线程访问安全;2.适用于生产者-消费者模型,自动处理任务调度;3.常用方法put()和get()支持阻塞与非阻塞操作;4.可选择lifoqueue(后进先出)或priorityqueu…

    好文分享 2025年12月14日
    000
  • Python高性能计算 Python代码加速优化技巧大全

    python能胜任高性能计算吗?答案是肯定的,只要方法得当。关键在于优化方式:1. 尽量使用内置函数和标准库,例如列表推导式、map()、itertools等,它们内部用c实现,效率更高;2. 用numpy替代原生列表进行数值计算,其底层为c编写,速度显著提升,尤其适合大规模数据操作;3. 使用cy…

    2025年12月14日
    000
  • Python反爬对抗 Python爬虫伪装技术大全

    做爬虫时绕过反爬机制的关键在于伪装成正常用户。1. 设置随机user-agent模拟浏览器访问,使用fake_useragent库随机生成不同ua。2. 使用代理ip避免ip封禁,维护代理池并定期检测可用性。3. 控制请求频率并加入随机延迟,模拟人类行为降低风险。4. 使用selenium或play…

    2025年12月14日
    000
  • python中怎么安装pip python包管理工具安装指南

    pip在python 3.4及以上版本中默认安装。如果未安装,可通过下载get-pip.py并运行python get-pip.py来安装。使用pip3避免版本混淆,建议使用镜像源并定期更新pip。 在Python中安装pip——Python包管理工具的详细指南你问我怎么在Python中安装pip?…

    2025年12月14日
    000
  • Python代码打包发布 Python项目打包成可执行文件步骤

    打包python程序成可执行文件并不复杂,关键在于选对工具和注意细节。首先,pyinstaller是最常用、跨平台且操作简单的工具,基本命令为pyinstaller -f main.py;其次,更复杂的项目可选用cx_freeze或nuitka;接着,打包前需确保代码无误、依赖明确、资源完整,并建议…

    2025年12月14日
    000
  • Python里struct模块 字节流打包解包struct的二进制处理

    struct模块是 格式字符串 ‘i’ 表示使用默认的字节序(一般是小端)。如果你要指定大端或小端,可以加前缀: unpack:把 bytes 解包回原始值 value = struct.unpack(‘i’, data)print(value) # 输出 (12345,) 注意返回的是一个元组,即…

    好文分享 2025年12月14日
    000
  • Python类型注解指南 Python类型提示使用方法详解

    类型注解是python中一种为变量、函数参数及返回值添加类型信息的技术,它提升代码可读性和维护性。例如,函数greet(name: str) -> str指定参数和返回值应为字符串。变量如age: int = 25也可加注解。对于函数,即使有默认参数也应加类型,无返回值用none,不确定类型可…

    2025年12月14日
    000
  • Python交互设计 Python命令行界面优化技巧

    提升python命令行程序交互体验的关键在于优化提示信息、输入验证和输出美化。首先,给出明确提示,如“请输入1到10之间的整数”或带默认值的提示,帮助用户了解输入要求;其次,加入输入验证逻辑,使用循环和异常处理防止因错误输入导致程序崩溃;最后,通过分隔线、颜色高亮和第三方库如tabulate、col…

    2025年12月14日
    000
  • Python科学计算库教程 Python科学计算必备模块有哪些

    python科学计算流行因其强大库支持,关键模块包括numpy、pandas、matplotlib+seaborn、scipy。1.numpy提供高效多维数组和向量化运算,是科学计算基础;2.pandas基于numpy,核心结构dataframe适合处理表格型数据,涵盖读取、清洗、聚合等操作;3.m…

    2025年12月14日
    000
  • Python中如何计算三角形的面积?

    如何计算三角形的面积?在python中可以通过公式面积 = 0.5 底 高来计算。具体实现包括:1. 定义函数calculate_triangle_area(base, height),使用浮点数计算面积;2. 使用decimal模块进行更精确的计算;3. 加入错误处理,确保输入为正数;4. 利用n…

    2025年12月14日
    000
  • Python中如何处理异步Web请求?

    在python中,处理异步web请求主要依赖于asyncio和aiohttp库。使用这些库可以提高代码效率和响应速度。具体方法包括:1)使用aiohttp发起异步http请求;2)并行处理多个请求以提高性能;3)注意代码结构清晰、使用异常处理和调试技巧;4)使用连接池和限制并发数量来优化性能。 在P…

    2025年12月14日
    000
  • Python微服务架构 Python分布式系统设计原则

    微服务划分应基于业务边界而非技术层次,保持单一职责并提前规划数据归属;通信方式根据场景选择rest、grpc或消息队列;系统设计需处理一致性、容错与监控;工具链如fastapi、celery、docker、consul等能有效支持开发。核心在于理清业务逻辑,合理选型,强化异常处理与协作机制,才能构建…

    2025年12月14日
    000
  • Python爬虫技术入门教程 Python爬虫基础知识点有哪些

    学python爬虫的关键在于掌握核心基础并动手实践。1. 首先要了解http请求与响应机制,包括get/post方法、headers作用及常见状态码,使用requests库发送请求获取数据;2. 掌握html结构解析,利用beautifulsoup或lxml配合css选择器或xpath精准提取所需内…

    2025年12月14日
    000
  • Python中glob模块 文件路径匹配模块glob的通配符使用技巧

    python的glob模块通过通配符匹配文件路径,常用符号包括、?和[]。匹配任意数量字符但不跨目录,如.txt匹配当前目录所有.txt文件;*搭配recursive=true可递归搜索;?匹配单个字符,如log_2024-01-0?.log适用于固定格式变化日志;[]限定字符集合,如[abc].t…

    好文分享 2025年12月14日
    000

发表回复

登录后才能评论
关注微信