分享

MD5是什么?

 开花结果 2012-11-06

md5

1、MD5简介

     何谓MD5?MD5全称为Message-Digest Algorithm 5,即信息-摘要算法 5。即通过一系列运算,将一段信息(Message)换算成对应的且全世界唯一(有冲 突,稍后会说)的信息摘要(Message-Digest)。

     简单的来说,MD5值就相当于人的指纹,你可以这样想象它:把人丢到电脑里面计算,出来的结果是那人的指纹。

     但是需要注意的一点是,MD5过程是不可逆的。同样的道理,拿个人你可以看到他指纹,但是拿到指纹你看不到他本人。

2、MD5应用

2.1、文件校验

clip_image002 

     如上图,我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次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已被山东大学王小云教授,具体怎么个破解法有识之士可以去研究研究。而且现在网上有很多提供破解MD5的网站,其基本原理都是一样:将字符串组合一一求出MD5值,存入记录,待用户查询检索。较好的网站有http://www./,可以上去玩玩。但是我就有个想法了,如果MD5嵌套,如MD5(MD5(“tester”)),那这样得出的MD5值破解起来不是异常麻烦?

3、MD5算法描述

     简单的来说,MD5就是将输入的信息以512位分组,且每一分组被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 即算法分为了两部分,两部分如下:

3.1、数据预处理

     在MD5算法中,首先需要对信息进行填充,使其位长对512求余的结果等于448。因此,信息的位长(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息的位长等于N * 512 + 448 + 64 = ( N + 1 ) * 512,即长度恰好是512的整数倍。

这样做的原因是为满足后面处理中对信息长度的要求。

3.2、一系列的运算

     对数据进行循环处理,主循环次数为512位分组信息的数目。主循环有四轮,每轮循环都很相似。每一轮均进行16次操作。具体运算步骤如下:

1、设置链接变量(Chaining Variable),分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。

2、将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。

3、以上四个变量进行4大轮(64步)的非线性函数运算。 (具体循环变换函数参加附录)

4、将A、B、C、D分别加上a、b、c、d。然后用下一分组数据继续运行算法,最后的输出是A、B、C和D的级联。

 

 P.S.: 需要实现的请留邮箱,插代码功能不大好使……作者水平有限,如有错误、不当之处,望指正批评……

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多