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

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

本文详细介绍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 相关产品和应用

全部下载

专题列表