MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在MD5算法中,首先需要对信息进行填充,这个数据按位(bit)补充,要求最终的位数对512求模的结果为448。也就是说数据补位后,其位数长度只差64位(bit)就是512的整数倍。
即便是这个数据的位数对512求模的结果正好是448也必须进行补位。
补位的实现过程:首先在数据后补一个1 bit; 接着在后面补上一堆0 bit, 直到整个数据的位数对512求模的结果正好为448。总之,至少补1位,而最多可能补512位。
扩展资料
当需要保存某些密码信息以用于身份确认时,如果直接将密码信息以明码方式保存在数据库中,不使用任何保密措施,系统管理员就很容易能得到原来的密码信息,这些信息一旦泄露, 密码也很容易被破译。为了增加安全性,有必要对数据库中需要保密的信息进行加密,这样,即使有人得到了整个数据库,如果没有解密算法,也不能得到原来的密码信息。
MD5算法可以很好地解决这个问题,因为它可以将任意长度的输入串经过计算得到固定长度的输出,而且只有在明文相同的情况下,才能等到相同的密文,并且这个算法是不可逆的,即便得到了加密以后的密文,也不可能通过解密算法反算出明文。
这样就可以把用户的密码以MD5值(或类似的其它算法)的方式保存起来,用户注册的时候,系统是把用户输入的密码计算成 MD5 值,然后再去和系统中保存的 MD5 值进行比较,如果密文相同,就可以认定密码是正确的,否则密码错误。
通过这样的步骤,系统在并不知道用户密码明码的情况下就可以确定用户登录系统的合法性。这样不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。
MD5 算法还可以作为一种电子签名的方法来使用,使用 MD5算法就可以为任何文件(不管其大小、格式、数量)产生一个独一无二的“数字指纹”,借助这个“数字指纹”,通过检查文件前后 MD5 值是否发生了改变,就可以知道源文件是否被改动。
md5是对密码加密的一种算法,这个网站是可以通过md5这个算法对明文的密码进行加密、或者对已经加密过的密文进行解密的一个在线网站。
1.常见的三种加密算法及区别
2.加密算法在HTTPS中的应用
3.MD5的实现原理
对源数据进行填充,使其变成一个(N*512-64)位大小的数据
填充方法:在消息后面进行填充,填充第一位为1,其余为0。
再填充上原数据的长度,可用来进行的存储长度为64位。如果数据长度大于2^64,则只使用其低64位的值
最终数据长度就是512的整数倍。
1.首先将数据按每个512位为一组进行分组,每组里面分成16个32位,也就是16个int
2.对分组进行计算
每轮循环后,将A,B,C,D分别加上a,b,c,d,然后进入下一循环
d5密文破解(解密)可以说是网络攻击中的一个必不可少的环节,是黑客工具中的一个重要“辅助工具”。md5解密主要用于网络攻击,在对网站等进行入侵过程,有可能获得管理员或者其他用户的账号和密码值(md5加密后的值)。获得的密码值有两种情况,一种是明文,另外一种就是对明文进行了加密。如果密码值是加密的,这个时候就需要对密码值进行判断,如果是采取md5加密,则可以通过MD5Crack3等软件进行破解。王小云教授的md5密码碰撞破解算法没有公布,因此目前Md5解密方式主要采取暴力破解,
即软件通过算法生成字典,然后使用md5函数加密该字典中的值形成密文,接着跟需要破解的密文进行比较,如果相同则认为破解成功。目前网上有很多网站提供md5加密或者加密值查询,将加密后的md5值,输入到网站中,如果网站数据库中存在该md5,则该值对应的md5加密前的值就为密码。本案例介绍如何使用MD5Crack3以及一些在线的网站来进行破解;MD5Crack3是阿呆写的一款md5密码破解软件,其网站地址:,目前已经发布了MD5Crack4.0版本,也可以到我的blog()去下载。
(一)在线生成md5密码值
1.有关md5加解密知识
Md5密文破解(解密)可以说是网络攻击中的一个必不可少的环节,是黑客工具中的一个重要“辅助工具”。md5解密主要用于网络攻击,在对网站等进行入侵过程,有可能获得管理员或者其他用户的账号和密码值(md5加密后的值)。获得的密码值有两种情况,一种是明文,另外一种就是对明文进行了加密。如果密码值是加密的,这个时候就需要对密码值进行判断,如果是采取md5加密,则可以通过MD5Crack4等软件进行破解。王小云教授的md5密码碰撞破解算法没有公布,因此目前Md5解密方式主要采取暴力破解,
即软件通过算法生成字典,然后使用md5函数加密该字典中的值形成密文,接着跟需要破解的密文进行比较,如果相同则认为破解成功。目前网上有很多网站提供md5加密或者加密值查询,将加密后的md5值,输入到网站中,如果网站数据库中存在该md5,则该值对应的md5加密前的值就为密码。
2.通过cmd5网站生成md5密码
在浏览器中输入地址“”,在输入框中输入想要加密的原始密码,然后单击“md5加密或解密”按钮即可,如图1所示,原始密码为“goodman88”,加密后的密码值为:
MD5(goodman88,32)
=
d5a8e0b115259023faa219f5b53ca522
MD5(goodman88,16)
=
15259023faa219f5
图1
md5加密
作为实验数据,我们在生成一组生日的md5密码如下:
MD5(19801230,32)
=
2540bb62336a8eb3ebc1e42ee44c8e3d
MD5(19801230,16)
=
336a8eb3ebc1e42e
(二)在线破解md5密码值
1.通过cmd5网站破解md5密码
在cmd5网站的输入框中输入刚才加密后的md5
32值“d5a8e0b115259023faa219f5b53ca522”,然后单击“md5加密或解密”按钮即可,如图2所示,未能成功破解。
图2
通过cmd5网站未能破解md5密码
将第二个生日加密后的md5值“2540bb62336a8eb3ebc1e42ee44c8e3d”,放入cmd5网站进行破解,很快其结果就出来了,如图3所示。
图3
破解简单的数字密码
2.在线md5破解网站收费破解高难度的md5密码值
一些在线网站提供的md5密码破解只能破解已经收录和一些简单的密码,对于稍微复杂一点的密码,都不容易被破解;而且对一些稍微有点难度的md5密码值,如果数据库中有,在线网站是要求付费的,例如用一个复杂一点的md5值进行破解,如图4所示,提示找到,但是要求进行付费。
图4要求付费才能查看md5密码值
(三)使用字典暴力破解md5密码值
1.再次生成md5密码值
再在cmd5网站生成原密码为“jimmychu246”的md5密码值为:
MD5(jimmychu246,32)
=
437f4fffb6b2e5aaca9fd1712b8ad282
MD5(jimmychu246,16)
=
b6b2e5aaca9fd171
直接运行md5crack4,运行界面如图5所示。
图5
md5crack4程序主界面
2.在md5crack4中验证md5值
将需要破解的md5值(437f4fffb6b2e5aaca9fd1712b8ad282)粘贴到“破解单个密文(Single
Cryptograph)”输入框中,如图6所示,如果该md5值是正确的,则会在“破解单个密文”输入框下方显示黑色的“有效(valid)”两个字,否则显示“valid”为灰色。
3.使用字典进行破解
在“字符设置(Plaintext
Setting)”中选择“字典(Dictionary)”,并在“N0.1”、“N0.2”以及“N0.3”中选择三个不同的字典,选择完毕后,单击“Start”按钮开始md5破解,破解结束后会给出相应的提示,如图7所示,在本案例中使用字典破解成功,在Result中显示破解的密码为“jimmychu246”。
图7使用字典进行破解
4.“使用字符集(Char
Muster)”中的数字进行破解
将上面生成的数字md5值“336a8eb3ebc1e42e”放入单一md5密码破解输入框中,选中“Char
Muster”后,依次可以选择“Number”、“lowercase”、“majuscule”、“special
char”以及“custom”进行破解,在本例中使用数字进行破击,因此
“最小长度(Min
Length)”中设置为“1”,“最大长度(Max
Length)”中设置为“8”,然后单击“开始”按钮,使用数字进行md5破解,尝试破解密码位数从1~9999999之间的所有数字组合,如图8所示,其密码值破解成功,破解结果为“336a8eb3ebc1e42e
---
[19801230]”。
图8
使用数字进行破解
说明
(1)在md5crack4中还可以定义数字、大小字母、特殊字符的组合来进行破解。
(2)如果计算机配置比较好,可以设置更多线程。
(3)如果自定义进行破解,建议先选择使用数字,然后依次是数字、大小字母、特殊字符的组合。破解时先易后难,否则破解时间太长。
(4)在md5crack4还可以“使用插件”进行破解。
(5)在md5crack4中还可以设置软件显示的语言版本,一共有中文简体和英语两个版本,单击主界面中的设置(Option),即可进行设置,如图9所示。
图9
设置md5crack4
5.一次破解多个密码
将需要破解的md5密码全部存放到一个txt文件中,每一个密码独立一行,然后在md5crack4中单击“破解多个密文”,选择刚才编辑的md5密码文件,如图10所示,选择一种破解方式,在本案例中选择使用数字字典进行破解,最后单击“开始”按钮开始破解。
图10
破解多个md5密码值
在md5crack4右下方会显示破解结果,单击“日志”可以查看md5值校验等日志信息,单击“结果”可以查看破解的结果,如图11所示,在结果中会将md5值与原始密码进行一一对应。
图11
破解结果
Md5加解密是网络攻防中必须掌握的知识,本文介绍了使用md5cracker以及通过网站来对md5值进行破解,对md5破解,可以先在一些md5破解网站进行破解,如果未能破解,则可以在本地通过md5cracker进行破解。
ps:转载至安天365
Md5码确实不可逆运算,所谓md5就是将字符串转换成md5码,只是在做md5转换时,将字符串和转好的md5码收集起来,提供给用户使用。
但md5是可以破解的,如字符串123转化成md5码202cb962ac59075b964b07152d234b70,同样,有一种解密算法可将其他任意字符串(如456,jdkgy等)也转化成md5码202cb962ac59075b964b07152d234b70,(一定要通过解密算法换,不然转的md5就不一样了)。
这是黑客常用的手段,尽管用户的密码在服务器端的密码被转成md5码保存,但只要黑客获取到该md5码,即可通过以上手段骗过服务器合伪装成用户登陆已达到窃取数据的目的。
MD5加密原理是散列算法,散列算法也称哈希算法。
计算机专业学的数据结构就有哈希表这一知识点。
比如10除以3余数为一,4除以3余数也为一,但余数为一的就不知道这个数是哪个了。
所以md5不能解密。
就算是设计这个加密算法的人都不知道。
但是你的密码是怎么验证的呢?就是因为同一密码加密后一定相同。
你输入密码加密后才能知道你的密码是否正确。
也就是说,你的密码只有你自己知道。
也是为什么扣扣密码只能重置,不能找回的原因。
over