Python3中使用MD5进行数据校验与文件对比

Ruby
Ruby
发布时间:2026-10-13| 3人浏览过
原创

本文详细介绍Python3中利用内置hashlib模块实现MD5消息摘要算法的方法。通过具体代码示例,演示如何生成字符串的128位散列值,并对比两个文件的MD5哈希值以验证其内容是否完全一致,适用于文件传输和存储的完整性检查场景。

MD5算法概述

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm)是一种广泛应用的密码散列函数,能够生成128位(16字节)的散列值(hash value),旨在确保信息传输过程中的完整性与一致性。该算法由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,并于1992年正式公开,主要目的是替代早期的MD4算法。

概述

MD5校验码由散列函数计算得出,可为任意数据生成唯一的“指纹”。利用MD5将消息或数据压缩为摘要,可有效减小数据量,从而便于验证数据的完整性与正确性。由于两个不同的文件几乎不可能拥有相同的MD5哈希值,任何对文件的非恶意修改都会导致其MD5哈希值发生变化。因此,MD5哈希值常被用于检查文件完整性,特别是在检测文件传输错误、磁盘故障或其他异常情况下的文件正确性方面。

MD5

Python中MD5的实现

在Python中,我们可以利用内置模块轻松实现MD5算法的计算与应用。


import hashlib

m = hashlib.md5()
# 假设文件内容
src = 'I like Python'
m.update(src.encode('utf-8'))
print(m.hexdigest())

示例结果:

17008b7417701b0c233b999d20c13f1d

文件完整性验证方法

文件验证

假设现有两个文件,我们需要验证这两个文件的内容是否完全相同。


import hashlib


def out_md5(src):
  # 简单封装
  m = hashlib.md5()
  m.update(src.encode('utf-8'))
  return m.hexdigest()


with open('1.txt', 'r') as f:
  src = f.read()
  m1 = out_md5(src)
  print(m1)

with open('2.txt', 'r') as f:
  src = f.read()
  m2 = out_md5(src)
  print(m2)

if m1 == m2:
  print(True)
else:
  print(False)

示例结果:

bb0c1b519a0a2b8e6c74703e44538c60 43cb091db43a710d85ce45fb202438cd False

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。