MD5生成和校验

MD5生成和校验

2021819日·席锦

 

任何类型的一个文件,它都只有一个MD5值,并且如果这个文件被修改过或者篡改过,它的MD5值也将改变。因此,我们会对比文件的MD5值,来校验文件是否是有被恶意篡改过。

什么是MD5

MD5的全称是报文摘要算法(Message-Digest Algorithm 5),在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。

此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同报文摘要的可能性是非常非常之小的。其实就是一串字符,这串字符是从一个文件或程序中按照一定方法提取出来的,所以我们只要把收到的文件的MD5码和软件提供者给的MD5相比较就可以基本确定文件的完整性,保证没有被中途修改过。MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。

md5不是用于加密,而是用于数据的完整性校验的一种技术。 这是一个单向散列函数,单向的意思就是说不可逆转。你可以将源内容通过md5函数散列出一个md5校验码,这个md5校验码是唯一的,你可以作为证明源的身份标识,但是你无法通过md5校验码去还原源。Src ---> md5 --->md5Code

但是 md5Code --->某算法 ---> Src 是不可能的

同样的内容经过md5算法总是得到相同的md5校验码。

为什么要做MD5校验?

大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。

我们都经常从下载站点下载文件,在Internet不可信任的环境中,存在很多的不安全因素。如果你下载的session被人截获,并在下载的文件中插入危险代码,使得当你下载完毕运行程序的时候植入木马或者病毒或者其他非安全的代码。在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的验证软件做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。

MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。

笔记本Win7专用系统镜像下载_笔记本Win7 32位经典旗舰版免激活下载V2021.08 - 系统之家

上可下载系统的MD5值等信息

如何进行MD5效验?

有些电脑新手就会对如何查询一个软件或文件的MD5头疼,因为Windows并没有查询MD5码的功能,导致许多朋友只知道,但不知道怎么去利用起来,用好MD5对于日常下载软件什么的用处还是很大的哦。下面以【MD5加密校验比对器(MD5Verify)v3.2】和【Md5Checker V3.3 绿色免费版】为例来具体说说怎么查看一个软件或文件的MD5码,和比较MD5码。

MD5加密校验比对器(MD5Verify)v3.2】一次只能计算一个MD5

1.打开【MD5加密校验比对器(MD5Verify)v3.2】,选择【字符串MD5加密】或者【文件MD5校验】。(后续以选择【文件MD5校验】为例)

2.选择需要进行MD5验证的一个文件或直接将一个文件或软件程序拖拽至【MD5加密校验比对器(MD5Verify)v3.2】界面,就会看到对应的MD5码。

3.可将软件下载站或官方提供的MD5码放于【MD5加密校验比对器(MD5Verify)v3.2】界面【比对密文】前的输入框中,与本地生成的MD5进行比对。将可能产生如下两种结果中的一个。

Md5Checker V3.3 绿色免费版】一次可以计算多个MD5

1.打开【Md5Checker V3.3 绿色免费版】,选择(菜单路径:编辑->添加/打开)需要进行MD5验证的一个或多个文件或直接将一个或多个文件或软件程序拖拽至【Md5Checker V3.3 绿色免费版】界面,就会看到对应的MD5码。

若需要复制生产的MD5值,可点击复制(复制出活动行的MD5和文件名至剪贴板中)或复制MD5(仅复制活动行的MD5至剪贴板中)。

也可点击保存(保存所有行的MD5和文件名至*.md5文件中)或保存单项(仅保存活动行的MD5和文件名至*.md5文件中),保存和保存单项生成的文件与【Md5Checker V3.3 绿色免费版】软件在同一目录,*.md5的文件可用文本编辑器(如:记事本等)打开。

也可以点击保存到,保存所有行的MD5和文件名至自定义路径和文件名中。

2.点击需要进行MD5校验文件的行,会弹出【比较MD5值】的弹窗,在【粘贴】前的输入框中输入文件或软件下载站或官方提供的MD5码,与本地生成的MD5进行比对。将可能产生如下两种结果中的一个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/168324.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序实现类似于 vue中ref管理调用子组件函数的方式

微信小程序中确实有类似于 vue 中 ref管理子组件的方式、 这里 我给子组件定义了一个 class 只要是 css选择器拿得到的 都没什么问题 但你要保证唯一性 建议前端开发还是慎重一点 就算是不能重复也尽量用class 因为id总还是有风险的 然后 我在子组件中顶一个了一个函数 start…

计网----数据包在传输中的变化过程,单播组播和广播,ARP协议,ARP代理,免费ARP,DNS协议,路由数据转发过程

计网----数据包在传输中的变化过程,单播组播和广播,ARP协议,ARP代理,免费ARP,DNS协议,路由数据转发过程 一.数据包在传输中的变化过程(在同一个路由器下) 1.传输数据时&#xff0c…

RPA的尽头是超自动化?

超自动化在经过数年的发酵期后,已从一个科技概念崛起为市值近千亿元的新赛道,包括各大互联网巨头、科技公司都纷纷围绕超自动化进行战略布局。 一方面,是行业巨头选择纷纷跻身超自动化新赛道,另一方面,RPA行业的领军企…

Proteus仿真--VB上位机程序控制DS1302时钟仿真(Proteus仿真+程序)

本文主要介绍基于51单片机的VB上位机程序控制DS1302时钟仿真设计(完整仿真源文件及代码见文末链接) 简介 硬件电路主要分为单片机主控模块、DS1302模块、LCD1602液晶显示模块以及串口模块 (1)单片机主控模块:单片机选…

Git最佳实践:git常用命令和原理

Git 是一个开源的分布式版本控制系统。 Git 工作区、暂存区和版本库 工作区:就是你在电脑里能看到的目录。暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时…

Leetcode—104.二叉树的最大深度【简单】

2023每日刷题(六) Leetcode—104.二叉树的最大深度 递归实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/int maxDepth(struct TreeNode* root){…

热点不热!如何修复笔记本电脑未连接到移动热点的问题

当你远离常规Wi-Fi时,移动热点是让你的笔记本电脑上网的关键,但当它没有按计划运行时,你会怎么办?以下是Windows笔记本电脑无法连接到移动热点时的几种修复方法。 为什么我的笔记本电脑没有连接到我的热点 由于你的笔记本电脑正试图连接到另一个有限制和可能存在问题的设…

PHP yield

概念: Generator:带 yield的function yield:Generator或task的中断关键字,执行到yield时一次调度周期执行完即阻塞,并返回右侧表达式结果,等待下一次调度器运行next()或迭代遍历才会继续往下执行&#xff0…

2023-10-23 LeetCode每日一题(老人的数目)

2023-10-23每日一题 一、题目编号 2678. 老人的数目二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息,信息用长度为 15 的字符串表示,表示方式如下: 前十…

rust学习——泛型 (Generics)

文章目录 泛型 Generics泛型详解结构体中使用泛型枚举中使用泛型方法中使用泛型为具体的泛型类型实现方法 const 泛型(Rust 1.51 版本引入的重要特性)const 泛型表达式 泛型的性能 泛型 Generics Go 语言在 2022 年,就要正式引入泛型&#xf…

mysql下载和安装,使用

先下载安装 官方下载 已下载备份软件 安装,一路下一步设置环境变量 4. 打开一个cmd,输入mysql -u root -p

Spark内核调度

目录 一、DAG (1)概念 (2)Job和Action关系 (3)DAG的宽窄依赖关系和阶段划分 二、Spark内存迭代计算 三、spark的并行度 (1)并行度设置 (2)集群中如何规划并…

Visual Studio Code官网下载、vscode下载很慢、vscode下载不了 解决方案

前言 开发界的小伙伴们对于Visual Studio Code开发环境来可以说非常熟悉了,但由于在Visual Studio Code官网的下载速度非常的慢,即便开了代理也是一样的很慢、甚至下载被中断,几乎不能下载。 解决方案 1、在Web浏览器上打开vscode官网&#…

RabbitMQ基础篇 笔记

RabbitMQ 余额支付 同步调用 一步一步的来,支付业务写完后,如果之后加需求,还需要增加代码,不符合开闭原则。 性能上也有问题,openfeign是同步调用,性能太差。 同步调用耦合太多。 同步的优势是可以立…

Android View拖拽startDragAndDrop,Kotlin

Android View拖拽startDragAndDrop,Kotlin import android.os.Bundle import android.util.Log import android.view.DragEvent import android.view.View import android.view.View.OnDragListener import android.view.View.OnLongClickListener import android.w…

C语言之排序

1.冒泡排序 冒泡排序就不多说了,只需要两层循环嵌套,两两比较确定相对正确的顺序即可。 2.插入排序 插入排序的思想就是每一次向后寻找一个再将其与前面有序的部分进行对比,寻找合适位置插入。 这里关键要避免让前移超出目前读取的数字&…

高效MMdetection(3.1.0)环境安装和训练自己数据集教程(实现于Linux(ubuntu),可在windows尝试)

一、前言 很久没用mmdetection了,作为目标检测常见的几个深度学习框架,mmdetection用的人还是很多的,其中比较吸引人的一点就是mmdetection集成了非常多的算法,对于想做实验对比和算法学习的人来说,基于这个框架可以事…

寻找二叉树一个节点的后继节点

后继节点:中序遍历的后一个节点 普通二叉树:中序遍历得到一个list,时间复杂度O(n) 本题的二叉树:有父节点的指针,后继节点与原节点的距离为1,因此可以直接通过父节点找到下一个节点 优化:节点…

64 最长公共子序列

最长公共子序列 题解1 DP 给定两个字符串 text1 和 text2,返回这两个字符串的 最长公共子序列的长度。如果不存在 公共子序列,返回 0 。 一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些…

空间地图GIS基础

一、GIS基本概念 地理信息系统(Geographic Informaiton System, GIS)是一个可以建立、浏览、查询、分析地理空间数据的软件系统,其功能小至地图的展示,大至空间决策分析与支持。 1.GIS基础 (1)地理信息系统(GIS)的概念与组成 …