简述MD5信息摘要算法
在之前的文章中,我们聊了不少的加密算法,今天我们聊一种被广泛使用的密码散列函数——MD5。
MD5又叫MD5信息摘要算法,经常用于确保信息传输的完整性和一致性 。从严格意义上来说,MD5并不是加密算法,只能是一种哈希算法或是叫做摘要算法。MD5算法对比普通的加密算法缺少了解密的过程,它无法从密文(散列值)反过来得到原文。
MD5应用场景
- 用户密码保护
在保存用户密码时,不记录密码本身,只记录密码的MD5结果(即使数据库被盗也无法反推出明文)。
- 文件完整性校验
先在发送端计算一次文件的MD5,并把结果发送给接收端,接收端在接受文件后也计算一次MD5,两次结果一致文件完整。
- 垃圾邮件筛选
在电子邮件使用越来越普遍的情况下,可以利用 MD5 算法在邮件接收服务器上进行垃圾邮件的筛选,以减少此类邮件的干扰。
- 数字签名
发布程序时同时发布其MD5,下载后比较MD5是否相同,就可知道程序是否被篡改。
MD5算法原理
MG5以512位分组来处理输入的信息,每一分组又被划分为16个32位子分组。经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在MD5算法中,首先需要对信息进行填充,填充方法如下:先在信息后面填充一个1,之后就是无数个0,直到使其字节长度对512求余数的结果等于448,即(n*512) + 448 ,为什么要使余数为448呢,因为剩下的512-448 等于64位 是用于表示填充前的信息长度。加上剩下的64位,即(n+1)*512,长度刚刚好是512的整数倍数。
然后就与链接变量进行循环运算,得出结果。MD5中有四个32位被称作链接变量(Chaining Variable)的整数参数,它们分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。当设置好这四个链接变量后,就开始进入算法的四轮循环运算。
MD5的特点
- 压缩性:无论数据长度是多少,计算出来的MD5值长度相同。
- 容易计算性:由原数据容易计算出MD5值。
- 抗修改性:即便修改一个字节,计算出来的MD5值也会巨大差异。
- 抗碰撞性:知道数据和MD5值,很小概率找到相同MD5值相同的原数据。
MD5虽然理论上不可逆,但还是可以通过“查字典”的方式获取MD5原文信息,并且因为MD5的碰撞性,决定了存在两个不同的输入信息,其MD5相同的可能,因此不适用于安全性认证。
简述MD5信息摘要算法相关推荐
- 分布式服务器框架之Servers.Core库实现 DES对称加密算法;SHA1信息摘要算法;MD5信息摘要算法
1 介绍 1.1 DES对称加密算法介绍 对称加密算法 通信双方(通信主体)同时掌握一个钥匙,加解密都由这一个钥匙完成.通信双方通信前共同拟定一个密钥,不向第三方公开,发送前加密和接受后解密都由此密钥 ...
- 密码学 MD5信息摘要算法
一.简介 MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确 ...
- MD5信息摘要算法详解
MD5信息摘要算法详解 文章目录 MD5信息摘要算法详解 01 MD5概要 02 MD5特性 03 MD5应用 04 MD5实现算法 05 MD5在线网站 01 MD5概要 MD5信息摘要算法,一种被 ...
- 一文详解 MD5 信息摘要算法
对于软件研发人员来说 MD5 不是一个陌生的词汇,平时的软件研发中,经常使用 MD5 校验消息是否被篡改.验证文件完整性,甚至将MD5当作加密算法使用. MD5虽不陌生,但不是所有研发人员都了解其算法 ...
- MD5信息摘要算法解析
个人博客请访问 http://www.x0100.top 小明:老师,最近老板让我研究微信支付的接口文档,可是有个地方我总是弄不明白. 老师:什么地方不明白,说来听听. 小明:微信支付的接口有许多业务 ...
- 信息摘要算法之一:MD5算法解析及实现
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5实现. ...
- 加密解密、信息摘要算法收集
MD5算法研究 综述 md5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa ...
- 信息摘要算法:HMAC算法分析
1.HMAC概述 HMAC算法首先它是基于信息摘要算法的.目前主要集合了MD和SHA两大系列消息摘要算法.其中MD系列的算法有HmacMD2.HmacMD4.HmacMD5三种算法:SHA系列的算法有 ...
- Mac电脑系统如何查看文件MD5信息?
在我们下载了一个比较大的文件之后,往往要验证文件下载过程是否有损坏或者是否一致,对于macOS系统来说查看dmg安装包.pkg安装文件.ISO文件.图片文件等等文件的MD5信息其实非常简单,不需要额外 ...
最新文章
- 点分十进制IP校验、转换,掩码校验
- AI 热潮之下,初创企业能否躲过科技巨头的碾压?
- KAIXIN000发狠 誓将匿名制进行到底!
- linux安装后硬盘变小,Linux硬盘安装步骤
- Flask 第三方组件之 WTForms
- c/c++排坑(4) -- c/c++中返回局部变量
- 新冠隔离让你家Wifi变慢?全球网络大塞车AI缓拥堵,边缘计算或成杀手锏
- java线程轮询_基于springboot实现轮询线程自动执行任务
- socket编程(八)
- oracle客户端查看版本号,Oracle 版本查看及版本号说明
- C#网络编程----文件流
- WIN7无法卸载掉中文繁体注音输入法
- 遗传算法matlab_【优化求解】遗传算法解决背包问题
- 偏差-方差分解、损失函数和正则化
- 服务器tpm性能指标,如何计算TPM的关键指标OEE?
- 支持m3u8的php视频cms,分享一个苹果CMS可用P2P的M3U8解析代码
- Linux下自动化工具
- golang常用加签验签 - 2.hmac
- 虚拟现实是计算机软件么,虚拟现实技术对于电脑软件、硬件的配置要求有哪些?...
- 元数据管理工具Atlas学习笔记之使用