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

速通python加密之MD5加密

MD5

MD5加密是一种广泛使用的密码散列函数,全称为Message-Digest Algorithm 5(消息摘要算法第5版),由罗纳德·李维斯特设计,于1992年公开。其核心功能是将任意长度的输入数据(如文本、文件等)转换为一个固定长度(128位,通常表示为32个十六进制字符)的输出,这个输出被称为MD5哈希值消息摘要

MD5加密的核心特点:

  1. 固定输出长度
    无论输入数据是1字节还是1GB,输出的MD5值均为32位十六进制字符串(如d41d8cd98f00b204e9800998ecf8427e是空字符串的MD5值)。

  2. 不可逆性
    理论上,无法从MD5哈希值反推原始输入数据(因为哈希过程是单向的,且多个输入可能对应同一输出,即“哈希碰撞”)。

  3. 抗修改性
    原始数据哪怕只有微小改动(如一个字符的变化),生成的MD5值也会截然不同,可用于校验数据完整性(如文件传输后验证是否被篡改)。

应用场景(过去与现在):

  • 历史用途:曾用于密码存储(将用户密码加密为MD5值后保存,避免明文泄露)、文件校验(如软件安装包的MD5校验码)、数字签名辅助等。
  • 现状:由于存在哈希碰撞漏洞(即不同输入可生成相同MD5值,已被数学证明并实际演示),其安全性已被否定,目前不再推荐用于密码存储、金融等安全敏感场景,逐渐被SHA-256等更安全的算法替代。

示例:


"""
@File    :00MD5.py
@Editor  : 百年
"""
'''
md5本身不是一种加密算法,而是摘要算法,其是不可逆的'''#导入需要的包
from hashlib import md5#step1:创建一个加密对象
# obj = md5()# tips:为了防止撞库,MD5创建阶段可以进行加盐
obj = md5(b'weixiaozaimeizaitianbushinidedoubutebie')#step2:给加密对象增加内容,字符串必须在哈希前进行编码
# 其实说白了就是加密的必须是字节
obj.update("hello , aloha".encode('utf-8'))obj.update('yes,i am ironman'.encode('utf-8'))#step3:看结果,往往会导出32位的16进制数字
result = obj.hexdigest()print(result)
# ce83402ae45ff730cefa39de5f7279d5
http://www.dtcms.com/a/300255.html

相关文章:

  • Datawhale AI 夏令营:让AI理解列车排期表 Notebook(Baseline拆解)
  • JVM常见工具
  • Java 对象秒变 Map:字段自由伸缩的优雅实现
  • KTO:基于行为经济学的大模型对齐新范式——原理、应用与性能突破
  • 2025测绘程序设计国赛实战 | 基于统计滤波算法的点云去噪
  • 使用binutils工具分析目标文件(贰)
  • U514565 连通块中点的数量
  • 缓存一致性:从单核到异构多核的演进之路
  • HarmonyOS中的PX、 VP、 FP 、LPX、Percentage、Resource 详细区别是什么
  • HCIP--MGRE实验
  • CT、IT、ICT 和 DICT区别
  • Windows卷影复制的增量备份
  • 在VS Code中运行Python:基于Anaconda环境或Python官方环境
  • 人大金仓 kingbase 连接数太多, 清理数据库连接数
  • Go的内存管理和垃圾回收
  • “Datawhale AI夏令营”「结构化数据的用户意图理解和知识问答挑战赛」1
  • 使用Clion开发STM32(Dap调试)
  • 基于华为ENSP的OSPF数据报文保姆级别详解(3)
  • LeetCode——1695. 删除子数组的最大得分
  • TI MSPM0蓝牙串口通信数据包制作
  • C++11 -- emplace、包装器
  • 标准库开发和寄存器开发的区别
  • nfls dp 刷题 题解
  • AutoCAD_2025下载与保姆级安装教程
  • 【安全漏洞】防范未然:如何有效关闭不必要的HTTP请求方法,保护你的Web应用
  • cursor使用方法
  • MGER作业
  • Python 面向对象基础
  • 26考研英语词汇的逻辑笔记
  • 【PCIe 总线及设备入门学习专栏 5.1.3 -- PCIe PERST# 时序要求】