您当前的位置:首页 > 电脑百科 > 电脑知识

MD5通常有什么用?

时间:2019-06-19 14:59:28  来源:  作者:

1)背景介绍:

什么是MD5?

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

密码散列函数(Cryptographic hash function),又译为加密散列函数,是散列函数的一种。

MD4算法在安全上有大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用,比如MD5加密算法.

(2)知识剖析:

主要应用:

2.1一致性验证

MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在Unix下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:

MD5 (tanajiya.tar.gz) = 38b8c2c1093dd0fec383a9d9ac940515

MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。

举例描述:

我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。

具体来说文件的MD5值就像是这个文件的“数字指纹”。每个文件的MD5值是不同的,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”就会发生变化。比如下载服务器针对一个文件预先提供一个MD5值,用户下载完该文件后,用我这个算法重新计算下载文件的MD5值,通过比较这两个值是否相同,就能判断下载的文件是否出错,或者说下载的文件是否被篡改了。

利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。

2.2数字签名

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

2.3安全访问认证

MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面。如在Unix系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。

2.4算法原理

对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值

(3)常见问题:

(4)解决方案:

(5)编码实战:

@Test

public void MD5Test(){

String password = “!ytd1129097428”;

String md1 = MD5Util.MD5(password);

String md2 = MD5Util.generate(password);

System.out.println(“加密前:”+password);

System.out.println(“普通MD5加密后:”+md1);

System.out.println(“加盐MD5加密后:”+md2);

System.out.println(“比较原文和加盐MD5加密之后是否一致:”+MD5Util.verify(password,md2));

}

输出结果:

加密前:!ytd1129097428

普通MD5加密后:add4ff4fb01ace59713390dc5876d5d0

加盐MD5加密后:96b911880466d91d3244f37bd56c4531967c28d65181f191

比较原文和加盐MD5加密之后是否一致:true

(6)拓展思考:

关于撞库破解:

这是概率极低的破解方法,原理就是:

1.建立一个大型的数据库,把日常的各个语句,通过MD5加密成为密文,不断的积累大量的句子,放在一个庞大的数据库里.

2.比如一个人拿到了别人的密文,想去查询真实的密码,就需要那这个密文去到提供这个数据库的公司网站去查询.

在线MD5解密: http://www.cmd5.com/

(7)参考文献:

https://www.zhihu.com/question/22651987

https://blog.csdn.net/dingsai88/article/details/51637977

https://baike.baidu.com/item/MD5

(8)更多讨论:

Q1:1.MD5码不是128位的吗?为何得出来的乱码有的是32位的?

A1:128位是指二进制位。二进制太长,所以一般都改写成16进制,每一位16进制数可以代替4位二进制数,所以128位二进制数写成16进制就变成了128/4=32位。

Q2:2.MD5特点是什么?

A2:1.长度固定:

不管多长的字符串,加密后长度都是一样长

作用:方便平时信息的统计和管理

2.易计算:

字符串和文件加密的过程是容易的.

作用: 开发者很容易理解和做出加密工具

3.细微性:

一个文件,不管多大,小到几k,大到几G,你只要改变里面某个字符,那么都会导致MD5值改变.

作用:很多软件和应用在网站提供下载资源,其中包含了对文件的MD5码,用户下载后只需要用工具测一下下载好的文件,通过对比就知道该文件是否有过更改变动.

4.不可逆性:

你明明知道密文和加密方式,你却无法反向计算出原密码.

作用:基于这个特点,很多安全的加密方式都是用到.大大提高了数据的安全性

Q3:3.什么是MD5加盐?

A3:比如我的银行密码是”12345”

1.得到的MD5是:827ccb0eea8a706c4c34a16891f84e7b

2.一个人截取到这个密文,那么通过撞库肯定容易撞出12345.

3.我们要做的就是加盐,银行密码还是”12345”,然后我把银行密码加上我特定的字符串才计算MD5 所以密码还是那个密码,但是变成求”12345密码加密987”的MD5值,然后再得到MD5,那么这个MD5起码可以确认那个数据库不会有.



Tags:MD5   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Md5优点:快速计算m,具有单向性 one-way,不可由散列值推出原消息,但是如果密码过于简单就会有一定概率被暴力破解。密码存储常用方式:1、双重MD52、MD5+加盐3、双重MD5+加盐我一般...【详细内容】
2021-12-07  Tags: MD5  点击:(24)  评论:(0)  加入收藏
一、摘要算法摘要算法又称哈希算法。它表示输入任意长度的数据,输出固定长度的数据,它的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密。目前可以被解密逆向的只...【详细内容】
2021-03-16  Tags: MD5  点击:(276)  评论:(0)  加入收藏
一、RIP路由认证介绍前节回顾:前一节,我给大家介绍了RIP路由汇总,RIPV1手动验证,RIP手动路由汇总等本节引入:本节给大家讲解RIP路由认证,验证的两种方法包括:明文和加密认证。RIPv2...【详细内容】
2020-04-07  Tags: MD5  点击:(113)  评论:(0)  加入收藏
消息摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。消息摘要...【详细内容】
2020-02-25  Tags: MD5  点击:(48)  评论:(0)  加入收藏
基础1byte = 8bit (1字节等于8比特) Mysql数据库整数类型介绍 前言前两天写了一篇文章,是介绍如何将32-byte的MD5转为整型来保存,最后使用了两个ubiging和一个uint来保存,共使...【详细内容】
2020-01-03  Tags: MD5  点击:(160)  评论:(0)  加入收藏
MD5(Message-Digest Algorithm),想必大家都再熟悉不过了吧。通常我们调用第三方支付接口的时候都会遇到这种算法或者SHA等等类似的算法来做签名验证,由于其是不可逆的算法,对应破...【详细内容】
2019-11-29  Tags: MD5  点击:(115)  评论:(0)  加入收藏
这段时间刚好正在做软件安全的实验和课设,学习了各种加密算法,比如对称加密算法的DES,AES;非对称加密算法的RSA;再如今天要讲的主角-单向加密算法的MD5。为什么这么多算法,MD5成...【详细内容】
2019-11-14  Tags: MD5  点击:(72)  评论:(0)  加入收藏
本文目的在我的上一篇文章《MD5算法,看这篇就够了》中,我描述了md5算法的基本步骤,今天跟大家分享一下破解md5的原理。参考文献在文末,有兴趣的读者可以读读。符号文本中出现诸...【详细内容】
2019-10-12  Tags: MD5  点击:(500)  评论:(0)  加入收藏
MD5是一种加密算法,这种算法的用途我在另外一篇文章里写过,简单来说MD5就是把输入的字符或者文件,不论长短或者大小都转化为唯一的32位字符串,这套字符串可以用作“身份证明”或...【详细内容】
2019-09-26  Tags: MD5  点击:(182)  评论:(0)  加入收藏
MD5是一种不可逆的加密算法,全称是Message-Digest Algorithm 5(信息-摘要算法)。是当前计算机领域用于确保信息传输完整一致而广泛使用的散列算法之一。MD5的典型应用是对一段...【详细内容】
2019-09-09  Tags: MD5  点击:(195)  评论:(0)  加入收藏
▌简易百科推荐
回答这个问题前首先要了解一度电的定义一度电= 1000W·h ,是一个能量单位,一个功率为1000w的设备持续运作一小时就会消耗1度电。所以台式机多少时间一度电完全取决于台...【详细内容】
2021-12-20  数码榜    Tags:台式电脑   点击:(5)  评论:(0)  加入收藏
你是不是很多时候都会紧急冲向电源插座以拯救笔记本电脑的电量?很多时候由于附近没有方便的插座,一是会误事,二是会导致尴尬。幸运的是,现代笔记本电脑比前辈高效得多。如今,即...【详细内容】
2021-12-16  趣玩公社    Tags:电池   点击:(18)  评论:(0)  加入收藏
电脑在我们生活中的重要性不言而喻。如何保证自己的电脑流畅好用,对于很多用户来说都非常重要。作为一个理科男和IT从业者,对于自己的电脑还是非常在意的,会定期的进行整理,保持...【详细内容】
2021-12-09  小伊评科技    Tags:电脑   点击:(13)  评论:(0)  加入收藏
大家好,我是良许。不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢?我在朋友圈做了个小调查,发现...【详细内容】
2021-11-30  良许Linux    Tags:固件   点击:(11)  评论:(0)  加入收藏
澎湃问吧世界著名密码史学家戴维·卡恩曾说:“人类使用密码的历史几乎与使用文字的时间一样长”,这意味着人类密码领域的较量已近五千年。提及“密码”一词,大多数人会想...【详细内容】
2021-11-24    澎湃新闻  Tags:密码   点击:(16)  评论:(0)  加入收藏
由于去中心化域名和账户体系可以承载应用、网站和用户身份,因此有理由相信,这是 Web3 世界中不可或缺的一环。撰文:潘致雄如果回忆一下初次进行的加密货币转账时的体验,特别是在...【详细内容】
2021-11-03  链闻ChainNews    Tags:ENS   点击:(26)  评论:(0)  加入收藏
 文件系统(File System)是计算机系统必不可少的组成部分,可以说除了部分结构简单的单片机系统之外,文件系统是支撑每一个计算机系统运行的最重要的支撑,无论是操作系统、应用程...【详细内容】
2021-11-01  欧工玩转嵌入式  CSDN  Tags:FAT32   点击:(31)  评论:(0)  加入收藏
SDS 2.0时代进化达尔文的《进化论》认为,地球上现存的所有生物都是自然选择的结果,生物只有适应环境的变化,才能得到生存和进化。回望到企业存储,一个常做常新的行业,从上古结绳...【详细内容】
2021-10-28  ExponTech   企鹅号  Tags:SDS   点击:(35)  评论:(0)  加入收藏
在昨天的微信《远程办公危机四伏,到底该pick谁给你保驾护航?》中介绍了远程员工应该具备的四大安全工具,今天继续分享干货:05 双因子令牌在理想的情况下,每个人都会对所有的关键...【详细内容】
2021-10-26    计算机世界  Tags:远程办公   点击:(32)  评论:(0)  加入收藏
今天几乎所有的数字显示设备都基于某种类型的 RGB(红、绿、蓝)颜色模型。RGB 是表示人类可以看到的大多数颜色的最有效方式(有一些颜色不能很好地产生,但这是另一个讨论)。相机...【详细内容】
2021-10-09  懒懒散散的程序员    Tags:RGB   点击:(50)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条