Fork me on GitHub

MD5算法

http://www.pediy.com/kssd/pediy04/kanxue202.htm

http://bbs.pediy.com/thread-181487.htm

http://bbs.pediy.com/thread-54897.htm

http://www.cnblogs.com/charlesblc/p/6130141.html

 

https://github.com/pod32g/MD5/blob/master/md5.c

 

MD5算法对输入任意长度的消息进行运算,产生一个128位的消息摘要,可以理解为什么叫做“消息摘要算法”(Message Digest Algorithm)。

一、算法过程。

1、数据填充

 

2、初始化变量

 012345678ABCDEFFEDCBA9876543210

3、处理分组数据

 

4、输出

 

二、C语言实现

 

 

三、安全性

 

通过预先计算知道许多MD5的对应关系,存在数据库中,然后使用的时候反查。例如我知道'password'的MD5值是5f4dcc3b5aa765d61d8327deb882cf99,那么我就用一个数据库存起来,只要我看到5f4dcc3b5aa765d61d8327deb882cf99,我就知道这个是口令'password‘使用MD5处理之后的值,原来的口令就是'password'。MD5在身份鉴别系统中用于口令保护已经是很久了事情了,大部分黑客也有针对这种Hash方式准备相应的数据库进行反查,也就是彩虹表。

 

不要直接将原口令直接进行MD5运算,可以加入随机数。

 

posted on 2017-08-19 22:39  地精的贪婪  阅读(161)  评论(0编辑  收藏  举报