MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。

概述

MD5校验码通过散列函数计算而成,可以生成任何数据的数据“指纹”,即我们可以利用MD5将消息或者数据压缩成摘要,是的数据量变小,便于比较验证数据的完整和正确性。因为两个不同的文件几乎不可能拥有相同的MD5哈希值,任何对一个文件的非恶意变更都会导致其MD5哈希值改变。所以MD5哈希常用语检查文件完整性,尤其是检测文件传输、磁盘错误或其他情况文件的正确性。

MD5

在Python中我们利用内置模块hashlib即可完成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 指纹_详解Python3之数据指纹MD5校验与对比相关推荐

  1. python socket自动重连_详解python3中socket套接字的编码问题解决

    一.TCP 1.tcp服务器创建 #创建服务器 from socket import * from time import ctime #导入ctime HOST = '' #任意主机 PORT = ...

  2. python爬关键词百度指数_详解python3百度指数抓取实例

    百度指数抓取,再用图像识别得到指数 前言: 土福曾说,百度指数很难抓,在淘宝上面是20块1个关键字: 哥那么叼的人怎么会被他吓到,于是乎花了零零碎碎加起来大约2天半搞定,在此鄙视一下土福 安装的库很多 ...

  3. python3.4和3.6的区别_详解Python3.6正式版新特性

    按照Python官网上的计划,Python3.6正式版期望在2016-12-16号发布,也就是这周五.从去年的5月份开始,Python3.6版本就已经动手开发了,期间也断断续续的发布了4个Alpha版 ...

  4. python3中input输入浅谈_详解Python3中的 input() 函数

    详解Python3中的 input() 函数 一.知识介绍: 1.input() 函数,接收任意输入,将所有输入默认为字符串处理,并返回字符串类型: 2.可以用作文本输入,如用户名,密码框的值输入: ...

  5. python3 yield 大文件_详解Python3中yield生成器的用法

    任何使用yield的函数都称之为生成器,如: def count(n): while n > 0: yield n #生成值:n n -= 1 另外一种说法:生成器就是一个返回迭代器的函数,与普 ...

  6. python3多行输入字符串_详解Python3 定义一个跨越多行的字符串的多种方法

    方法一:使用三引号 >>> str1 = '''Le vent se lève, il faut tenter de vivre. 起风了,唯有努力生存. (纵有疾风起,人生不言弃. ...

  7. python3中unicode怎么写_详解python3中ascii与Unicode使用

    这篇文章主要为大家详解python3中ascii与Unicode使用的相关资料,需要的朋友可以参考下# Auther: Aaron Fan ''' ASCII:不支持中文,1个英文占1个字节 Unic ...

  8. mysql影响行数解析_详解MySQL的数据行和行溢出机制

    一.行 有哪些格式? 你可以像下面这样看一下你的mysql行格式设置. 其实mysql的数据行有两种格式,一种就是图中的 compact格式,还有一种是redundant格式. compact是一种紧 ...

  9. python评价指标_详解分类评价指标和回归评价指标以及Python代码实现

    这篇文章介绍的内容是详解分类评价指标和回归评价指标以及Python代码实现,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下. 1.概念 性能度量(评价)指标,主分为两大类: 1)分类评价 ...

最新文章

  1. set debug mode for flex builder
  2. pandas使用str函数和contains函数查看dataframe特定数据列中是否匹配或包含特定模式的字符串(match or contain a pattern in column value)
  3. ML基石_8_NoiseAndError
  4. python工程师月薪多少-Python全栈工程师为何这么火薪资这么高看了才知道
  5. [Node.js] mySQL数据库 -- promise
  6. 在WEB开发的时候导入各种jar包
  7. php ecdsa secp256k1,从上的压缩派生ECDSA未压缩公钥
  8. mac下selenium+python环境搭建
  9. JavaWeb房屋租赁管理系统(servlet+jsp+mysql)
  10. android calendar控件,Android Calendar自定义日历控件
  11. WEB前端开发规范文档示例
  12. 最最最简单从官方获取最新行政区划代码、区划拼音
  13. Windows右键菜单项管理讲解(RightMenuMgr)
  14. 程序员-IT领域的魔法师
  15. 猜一宋词名句 Java_古诗词名言名句大全之宋词名句集锦
  16. Cowboy 源码分析(十一)
  17. 5V2A移动电源管理芯片脚位兼容IP5306
  18. 这三种人不适合“裸辞”!
  19. 从零开始 飞机大战(五)实现子弹定位和动画
  20. 有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。矩阵的值由键盘输入。

热门文章

  1. python菜鸟教程官网pandas,python菜鸟教程官网numpy
  2. 2020年11月连云港计算机考试,连云港2020年中级经济师考试时间及考试科目
  3. mysql主从复制及主机宕机的解决方法
  4. 江西计算机专业考公务员,江西省考16万考生,专业人才却能避开竞争,盘点最容易公考岗位...
  5. FPGA和硬件描述语言HDL(如Verilog)简介
  6. 思维导图-功能测试应用
  7. 百度网盘源码分享!基于 Maven+SpringBoot+SpringDataJPA
  8. 关于公司的SVN服务器的一些小事
  9. 2020起重机司机(限桥式起重机)考试题及起重机司机(限桥式起重机)实操考试视频
  10. 三菱PLC FX3U与福禄克FLUKE 数字万用表通讯程序 样板实例程序