MD5算法如何解密
介绍MD5加密算法基本情况MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。
Message-Digest泛指字节串(Message)的Hash变换,就是把一个任意长度的字节串变换成一定长的大整数。请注意我使用了"字节串"而不是"字符串"这个词,是因为这种变换只与字节的值有关,与字符集或编码方式无关。
MD5将任意长度的"字节串"变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。
MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被"篡改"。举个例子,你将一段话写在一个叫readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的"抵赖",这就是所谓的数字签名应用。
MD5还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的,用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,而系统并不"知道"用户的密码是什么。
一些黑客破获这种密码的方法是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。
即使假设密码的最大长度为8,同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2)....+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘组,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。
在很多电子商务和社区应用中,管理用户的Account是一种最常用的基本功能,尽管很多Application Server提供了这些基本组件,但很多应用开发者为了管理的更大的灵活性还是喜欢采用关系数据库来管理用户,懒惰的做法是用户的密码往往使用明文或简单的变换后直接保存在数据库中,因此这些用户的密码对软件开发者或系统管理员来说可以说毫无保密可言,本文的目的是介绍MD5的Java Bean的实现,同时给出用MD5来处理用户的Account密码的例子,这种方法使得管理员和程序设计者都无法看到用户的密码,尽管他们可以初始化它们。但重要的一点是对于用户密码设置习惯的保护
讲讲md5加密
分类: 电脑/网络 >> 反病毒
解析:
一、MD5是何方神圣?
所谓MD5,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2、MD3、MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥加密算法标准RSA的第一设计者R.Rivest于上个世纪90年代初开发出来的。MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前"压缩"成一种保密的格式,关键之处在于——这种"压缩"是不可逆的。
为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程:
大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的"数字指纹",如果任何人对文件做了任何改动,其MD5值也就是对应的"数字指纹"都会发生变化。
我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。
笔者上面提到的例子只是MD5的一个基本应用,实际上MD5还被用于加密解密技术上,如Unix、各类BSD系统登录密码(在MD5诞生前采用的是DES加密算法,后因MD5安全性更高,DES被淘汰)、通信信息加密(如大家熟悉的即时通信软件MyIM)、数字签名等诸多方面。
二、MD5的消亡之路
实际上,从MD5诞生之日起,来自美国名为Van Oorschot和Wiener的两位密码学专家就发现了一个暴力搜寻冲突的函数,并预算出"使用一个专门用来搜索MD5冲突的机器可以平均每24天就找到一个冲突"。不过由于该方案仅仅从理论上证明了MD5的不安全性,且实现的代价及其夸张(当时要制造这种专门的计算机,成本需要100万美元),于是MD5自其诞生十多年来一直未有新版本或者被其它算法彻底取代。
在接下来的日子里,有关MD5的破译又诞生了"野蛮攻击",也就是用"穷举法"从所有可能产生的结果中找到被MD5加密的原始明文,不过由于MD5采用128位加密方法,即使一台机器每秒尝试10亿条明文,那么要破译出原始明文大概需要10的22次方年,而一款名为"MD5爆破工具"的软件,每秒进行的运算仅仅为2万次!
经过无数MD5算法研究专家的努力,先后又诞生了"生日攻击"、"微分攻击"等多种破译方法(相关信息大家可以参考研究成果,大大推进了md5算法消亡的进程。尽管在研究报告中并没有提及具体的实现方法,我们可以认为,md5被彻底攻破已经扫除了技术上的障碍,剩下的仅仅是时间和精力上的问题。/" target=_blank>md5crk)。此次山东大学几位教授的最新研究成果,大大推进了MD5算法消亡的进程。尽管在研究报告中并没有提及具体的实现方法,我们可以认为,MD5被彻底攻破已经扫除了技术上的障碍,剩下的仅仅是时间和精力上的问题。
MD5加密方式破解要哪些工具?
根据MD5算法的特点,我们可以把MD5加密过程看作是一个函数调用过程,建议必须做如下方式修改,这样可以保证一定程度上你的网站用户和数据安全:
1、修改MD5算法重的4个常数,这是最捷径的作法,其特点是加密后的数据和加密前非常类似,但是不会被破解
2、多次加密,对MD5加密过的数据进行二次或三次加密,或者在每次加密后从重抽取部分值进行在加密,比如“我爱你”,加密后“1E6986ACEC7BAE541AB7B37B99260DAF”,我们可以取任意一部分进行再加密,比如取前18位“1E6986ACEC7BAE541”进行再加密得到“E3E0A1F51038849583263FE1F1B8B3E9”,这种做法修改很简单,比如asp中调用是md5("password")那么你可以改成md5(left(md5("password"),16)),这样以来就很安全了,就是你的数据被下载,破解的话也是不可能的
3、仿MD5加密,顾名思义,我们不采用MD5加密,而采用其他算法,然后取其中的部分散列,可以保证不被破解方法有很多,我这里只是抛砖引玉,希望你在做网站的时候自己修改,可以确保万无一失,不管你用的是什么软件,希望大家谨慎一下,我们把这种改法称为MD5的私有算法或私有MD5算法。
对某些大型程序比如动网,动易,OBLOG程序者建议;不要使用常规MD5算法,有人说不用常规就不是MD5了,加密方式是灵活的,希望在做程序的时候选用适合的算法,可以适当对MD5进行修改,比如在配置文件里给用户增加改变MD5的影响函数,当用户正常安装程序时给出选择,自动修改MD5算法函数关键部分,从而产生不同网站用户密码加密结果差异,在初始管理员密码的时候就能保存较高加密程度密码,提高自身程序的安全性,2、制作程序时,应该多吸收新的加密解密知识,即使用常规方法,应该多考虑程序以外的安全系数,很多情况下,我们都是开源的,所以,让用户密码动态改变等新技术也应该吸取对普通用户的建议:
1、密码使用不要过于简单,比如纯数字,纯字母,生日,电话,邮编等都不要使用,最好是字母+字符+数字,比如1980zg97@*&^bye,字符主要通过SHIFT+数字输入,这样记忆只记住数字就可以了,比如你输入SHIFT+zg3450987zg 实际输入 ZG#¥%)(×※ZG比普通密码强多了
2、密码不要重复,但是要有规律,比如你的密码每个都不一样,但是都有联系,比如相差99,你的密码第一个是 8795%$#%4213 第二个可以是38795%$#%421
3、输入密码,注意结合鼠标,比如要输入 123456 你可以先输入456再把鼠标放到前面输入123
md5解密器如何使用
md5
密码
在线查询器
V1.1
文件大小:16KB
更新时间:2006-7-11
下载次数:809次
星级:
★★★
如果输入
明文
,则自动转换成md5
密文
。如果输入md5密文,则同时到三个国内外知名md5在线查询网站查询原文。
现在md5破解不需要使用
软件
进行穷举了,穷举很简单的还可以,一旦穷举超过8为
数字
或者超过5位
小写字母
,那么需要的时间可能就是数天了。而且这一段时间计算机资源几乎都要被它占用。
现在md5破解只需要到网站在线查询即可。有不少网站都提供了在线查询,它们已经收集起大量的MD5密码,已经远远超过你能用软件穷举的了。如果在线查询网站查询不到,那么用软件破解的希望基本不存在了。
目前国内最大的md5在线查询破解网站是http://www.cmd5.com,它能查询以下组合:全部10位及以下纯数字全...
软件分类:密码管理
操作系统:Windows
2000/XP/2003
授权方式:共享版