MD系列算法

admin 2022年7月22日13:10:00评论44 views字数 1536阅读5分7秒阅读模式
点击蓝字
默默关注

MD系列算法是信息摘要三大算法中的一种,全称:Message Digest算法,按照规范版本分为MD2、MD4、MD5三种算法,目前最常用的是MD5版本算法。



1
MD2算法


1989年,是由著名的非对称算法RSA发明人之一--麻省理工学院教授罗纳德-里维斯特开发的;这个算法首先对信息进行数据补位,使信息的字节长度是16的倍数,再以16位的检验和作为补充信息追加到原信息的末尾。最后根据这个新产生的信息计算出一个128位的散列值,MD2算法由此诞生。



2
MD4算法


1990年,在MD2基础上发展出MD4算法,1991年,MD4的创始人开发出


MD5算法

(1)和MD2一样,仍然对信息进行补位,但是补位时要添加448个字节,变为512的倍数。

(2)仍对信息做散列,获取一个128位的散列值,得出MD4值。

MD4的算法影响很大,比如MD5、SHA-1、Ripe-MD系列都是从MD4基础上衍生出来的。



3
MD5算法


(1)MD5的特点

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

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

详解:经过MD5加密生成一个固定长度为128bit的串。因为128位0和1的二进制串表达不友好,因此转化为了16进制,128/4 = 32位的16进制。将32位去掉前8位和后8位得到的是16位。因此会有MD5的32位 和16位加密说法。


(2)易计算

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

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


(3)细微性

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

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


(4)不可逆性

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

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

不可逆的原因:摘要是部分内容,因此由MD5的密文和加密方式会得到很多明文,而无法确定明文。

一个原始数据,只对应一个md5值;但是一个md5值,可能对应多个原始数据。

补充:MD5常用于字符串和文件的加密。



4
MD5撞库


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

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


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

这就是撞库的概念。



5
关于MD5加盐


比如我的银行密码是"12345"

(1)得到的MD5是:

    827ccb0eea8a706c4c34a16891f84e7b

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

(3)我们要做的就是加盐,银行密码还是"12345",然后我把银行密码加上我特定的字符串才计算MD5。 


所以密码还是那个密码,但是变成求"12345密码加密987"的MD5值,然后再得到MD5,那么这个MD5起码可以确认那个数据库不会有。



6
在Eclipse中分析MD5算法


分析MD5返回16位长度算法:


MD系列算法

MD系列算法



开始分析MD532方法,这里唯一其他代码都是一样的, 唯一的区别是最后的返回没有进行截取,而是全部转换。


补充:协议分析如何找MD5算法?degist()方法、update()这些固定方法。


小结:


1:介绍MD5算法的相关概念了以及特点。

2:分析MD5算法代码的实现。


问题解疑答惑可加群咨询


MD系列算法



往期精彩回顾
Base64编码算法
CydiaSubstrate框架
Frida Native层HOOK


MD系列算法

原文始发于微信公众号(映山红coin安全团队):MD系列算法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月22日13:10:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   MD系列算法https://cn-sec.com/archives/1056688.html

发表评论

匿名网友 填写信息