python 指纹_详解Python3之数据指纹MD5校验与对比
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校验与对比相关推荐
- python socket自动重连_详解python3中socket套接字的编码问题解决
一.TCP 1.tcp服务器创建 #创建服务器 from socket import * from time import ctime #导入ctime HOST = '' #任意主机 PORT = ...
- python爬关键词百度指数_详解python3百度指数抓取实例
百度指数抓取,再用图像识别得到指数 前言: 土福曾说,百度指数很难抓,在淘宝上面是20块1个关键字: 哥那么叼的人怎么会被他吓到,于是乎花了零零碎碎加起来大约2天半搞定,在此鄙视一下土福 安装的库很多 ...
- python3.4和3.6的区别_详解Python3.6正式版新特性
按照Python官网上的计划,Python3.6正式版期望在2016-12-16号发布,也就是这周五.从去年的5月份开始,Python3.6版本就已经动手开发了,期间也断断续续的发布了4个Alpha版 ...
- python3中input输入浅谈_详解Python3中的 input() 函数
详解Python3中的 input() 函数 一.知识介绍: 1.input() 函数,接收任意输入,将所有输入默认为字符串处理,并返回字符串类型: 2.可以用作文本输入,如用户名,密码框的值输入: ...
- python3 yield 大文件_详解Python3中yield生成器的用法
任何使用yield的函数都称之为生成器,如: def count(n): while n > 0: yield n #生成值:n n -= 1 另外一种说法:生成器就是一个返回迭代器的函数,与普 ...
- python3多行输入字符串_详解Python3 定义一个跨越多行的字符串的多种方法
方法一:使用三引号 >>> str1 = '''Le vent se lève, il faut tenter de vivre. 起风了,唯有努力生存. (纵有疾风起,人生不言弃. ...
- python3中unicode怎么写_详解python3中ascii与Unicode使用
这篇文章主要为大家详解python3中ascii与Unicode使用的相关资料,需要的朋友可以参考下# Auther: Aaron Fan ''' ASCII:不支持中文,1个英文占1个字节 Unic ...
- mysql影响行数解析_详解MySQL的数据行和行溢出机制
一.行 有哪些格式? 你可以像下面这样看一下你的mysql行格式设置. 其实mysql的数据行有两种格式,一种就是图中的 compact格式,还有一种是redundant格式. compact是一种紧 ...
- python评价指标_详解分类评价指标和回归评价指标以及Python代码实现
这篇文章介绍的内容是详解分类评价指标和回归评价指标以及Python代码实现,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下. 1.概念 性能度量(评价)指标,主分为两大类: 1)分类评价 ...
最新文章
- set debug mode for flex builder
- pandas使用str函数和contains函数查看dataframe特定数据列中是否匹配或包含特定模式的字符串(match or contain a pattern in column value)
- ML基石_8_NoiseAndError
- python工程师月薪多少-Python全栈工程师为何这么火薪资这么高看了才知道
- [Node.js] mySQL数据库 -- promise
- 在WEB开发的时候导入各种jar包
- php ecdsa secp256k1,从上的压缩派生ECDSA未压缩公钥
- mac下selenium+python环境搭建
- JavaWeb房屋租赁管理系统(servlet+jsp+mysql)
- android calendar控件,Android Calendar自定义日历控件
- WEB前端开发规范文档示例
- 最最最简单从官方获取最新行政区划代码、区划拼音
- Windows右键菜单项管理讲解(RightMenuMgr)
- 程序员-IT领域的魔法师
- 猜一宋词名句 Java_古诗词名言名句大全之宋词名句集锦
- Cowboy 源码分析(十一)
- 5V2A移动电源管理芯片脚位兼容IP5306
- 这三种人不适合“裸辞”!
- 从零开始 飞机大战(五)实现子弹定位和动画
- 有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。矩阵的值由键盘输入。
热门文章
- python菜鸟教程官网pandas,python菜鸟教程官网numpy
- 2020年11月连云港计算机考试,连云港2020年中级经济师考试时间及考试科目
- mysql主从复制及主机宕机的解决方法
- 江西计算机专业考公务员,江西省考16万考生,专业人才却能避开竞争,盘点最容易公考岗位...
- FPGA和硬件描述语言HDL(如Verilog)简介
- 思维导图-功能测试应用
- 百度网盘源码分享!基于 Maven+SpringBoot+SpringDataJPA
- 关于公司的SVN服务器的一些小事
- 2020起重机司机(限桥式起重机)考试题及起重机司机(限桥式起重机)实操考试视频
- 三菱PLC FX3U与福禄克FLUKE 数字万用表通讯程序 样板实例程序