首先引石老王要纠正一个概念,MD5不是加密算法,而是一种消息摘要算法。这两者的区别是:所谓加密算法是必须要有密钥参与的,且不同的数据加密后都不相同,但是可逆的。而消息摘要算法则是无须密钥参与,而且生成的数据是相同,不可逆。
md5是什么意思?
MD5值就像是这个文件的“数字指纹”。每个文件的MD5值是不同的,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”就会发生变化。比如下载服务器针对一个文件预先提供一个MD5值,用户下载完该文件后,用我这个算法重新计算下载文件的MD5值,通过比较这两个值是否相同,就能判断下载的文件是否出错,或者说下载的文件是否被篡改了。MD5实际上一种有损压缩技术,压缩前文件一样MD5值一定一样,反之MD5值一样并不能保证压缩前的数据是一样的。在密码学上发生这样的概率是很小的,所以MD5在密码加密领域有一席之地。但是专业的黑客甚至普通黑客也可以利用MD5值实际是有损压缩技术这一原理,将MD5的逆运算的值作为一张表俗称彩虹表的散列表来破解密码。 利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。
一个密码经过多次MD5加密能否提高安全性?
必须肯定,绝对可以提高安全性
先来讲个小故事
提到md5,这让我想到了前段时间全国2600多只队伍、一万多人参加的网络安全比赛(各方大佬开心虐菜)。有一道赛题就是关于md5的web题,那道题一共三关,每一关都考验了md5值相等或者相同,最后一关是md5全等,听说需要md5碰撞产生两个相同的数值,而如果你想从一个md5值恢复到原来的值是非常困难的。
MD5加密是什么?
MD5加密使用的是hash算法,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),也就是一共有2^128种可能,大概是3.4*10^38,这个数字是有限多个的,而但是世界上可以被用来加密的原文则会有无数的可能性。
2009年,中国科学院的谢涛和冯登国仅用了220.96的碰撞算法复杂度,破解了MD5的碰撞抵抗,该攻击在普通计算机上运行只需要数秒钟。我使用过md5碰撞生成器,可以生成两个md5值相同但是内容不同的文件。
md5解密网站的原理
相信你在网上可以找到很多破解md5的网站,为什么能破解呢?是因为这些站点中存储了md5加密数据,通过查找数据库中对应的md5密文找到相对应的加密数据。
多次MD5加密
目前几乎所有常用的密码的一次md5、二次md5甚至3次md5的结果都被计算出来存到一个彩虹表里。当然你加密的次数越多肯定会越安全,不过呢最好的办法是在每一次md5加密之后你在密文后再加点数据,然后再进行md5加密,这样就不会被破解了。
我是萌新程序猿,科技圈的事情欢迎邀请我来回答!
码了这么多字,点个赞关注下再走吧!!!
关注萌新程序猿(本人咯),了解更多IT以及程序猿的知识!!