md5加密算法
<br><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
在一些初始化处理后,MD5以512位分组来处理输入文本,每一分组又划分为16个32位子分组。算法的输出由四个32位分组组成,将它们级联形成一个128位散列值。<br>
首先填充消息使其长度恰好为一个比512位的倍数仅小64位的数。填充方法是附一个1在消息后面,后接所要求的多个0,然后在其后附上64位的消息长度(填充前)。这两步的作用是使消息长度恰好是512位的整数倍(算法的其余部分要求如此),同时确保不同的消息在填充后不相同。<br>
四个32位变量初始化为:<br>
A=0x01234567<br>
B=0x89abcdef<br>
C=0xfedcba98<br>
D=0x76543210<br>
它们称为链接变量(chaining variable)<br>
接着进行算法的主循环,循环的次数是消息中512位消息分组的数目。<br>
将上面四个变量复制到别外的变量中:A到a,B到b,C到c,D到d。<br>
主循环有四轮(MD4只有三轮),每轮很相拟。第一轮进行16次操作。每次操作对a,b,c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a,b,c或d中之一。最后用该结果取代a,b,c或d中之一。<br>
以一下是每次操作中用到的四个非线性函数(每轮一个)。<br>
F(X,Y,Z)=(X&Y)|((~X)&Z)<br>
G(X,Y,Z)=(X&Z)|(Y&(~Z))<br>
H(X,Y,Z)=X^Y^Z<br>
I(X,Y,Z)=Y^(X|(~Z))<br>
(&是与,|是或,~是非,^是异或)<br>
这些函数是这样设计的:如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。<br>
函数F是按逐位方式操作:如果X,那么Y,否则Z。函数H是逐位奇偶操作符。<br>
设Mj表示消息的第j个子分组(从0到15),<<<s表示循环左移s位,则四种操作为:<br>
FF(a,b,c,d,Mj,s,ti)表示a=b+((a+(F(b,c,d)+Mj+ti)<<<s)<br>
GG(a,b,c,d,Mj,s,ti)表示a=b+((a+(G(b,c,d)+Mj+ti)<<<s)<br>
HH(a,b,c,d,Mj,s,ti)表示a=b+((a+(H(b,c,d)+Mj+ti)<<<s)<br>
II(a,b,c,d,Mj,s,ti)表示a=b+((a+(I(b,c,d)+Mj+ti)<<<s)<br>
这四轮(64步)是:<br>
第一轮<br>
FF(a,b,c,d,M0,7,0xd76aa478)<br>
FF(d,a,b,c,M1,12,0xe8c7b756)<br>
FF(c,d,a,b,M2,17,0x242070db)<br>
FF(b,c,d,a,M3,22,0xc1bdceee)<br>
FF(a,b,c,d,M4,7,0xf57c0faf)<br>
FF(d,a,b,c,M5,12,0x4787c62a)<br>
FF(c,d,a,b,M6,17,0xa8304613)<br>
FF(b,c,d,a,M7,22,0xfd469501)<br>
FF(a,b,c,d,M8,7,0x698098d8)<br>
FF(d,a,b,c,M9,12,0x8b44f7af)<br>
FF(c,d,a,b,M10,17,0xffff5bb1)<br>
FF(b,c,d,a,M11,22,0x895cd7be)<br>
FF(a,b,c,d,M12,7,0x6b901122)<br>
FF(d,a,b,c,M13,12,0xfd987193)<br>
FF(c,d,a,b,M14,17,0xa679438e)<br>
FF(b,c,d,a,M15,22,0x49b40821)<br>
第二轮<br>
GG(a,b,c,d,M1,5,0xf61e2562)<br>
GG(d,a,b,c,M6,9,0xc040b340)<br>
GG(c,d,a,b,M11,14,0x265e5a51)<br>
GG(b,c,d,a,M0,20,0xe9b6c7aa)<br>
GG(a,b,c,d,M5,5,0xd62f105d)<br>
GG(d,a,b,c,M10,9,0x02441453)<br>
GG(c,d,a,b,M15,14,0xd8a1e681)<br>
GG(b,c,d,a,M4,20,0xe7d3fbc8)<br>
GG(a,b,c,d,M9,5,0x21e1cde6)<br>
GG(d,a,b,c,M14,9,0xc33707d6)<br>
GG(c,d,a,b,M3,14,0xf4d50d87)<br>
GG(b,c,d,a,M8,20,0x455a14ed)<br>
GG(a,b,c,d,M13,5,0xa9e3e905)<br>
GG(d,a,b,c,M2,9,0xfcefa3f8)<br>
GG(c,d,a,b,M7,14,0x676f02d9)<br>
GG(b,c,d,a,M12,20,0x8d2a4c8a)<br>
第三轮<br>
HH(a,b,c,d,M5,4,0xfffa3942)<br>
HH(d,a,b,c,M8,11,0x8771f681)<br>
HH(c,d,a,b,M11,16,0x6d9d6122)<br>
HH(b,c,d,a,M14,23,0xfde5380c)<br>
HH(a,b,c,d,M1,4,0xa4beea44)<br>
HH(d,a,b,c,M4,11,0x4bdecfa9)<br>
HH(c,d,a,b,M7,16,0xf6bb4b60)<br>
HH(b,c,d,a,M10,23,0xbebfbc70)<br>
HH(a,b,c,d,M13,4,0x289b7ec6)<br>
HH(d,a,b,c,M0,11,0xeaa127fa)<br>
HH(c,d,a,b,M3,16,0xd4ef3085)<br>
HH(b,c,d,a,M6,23,0x04881d05)<br>
HH(a,b,c,d,M9,4,0xd9d4d039)<br>
HH(d,a,b,c,M12,11,0xe6db99e5)<br>
HH(c,d,a,b,M15,16,0x1fa27cf8)<br>
HH(b,c,d,a,M2,23,0xc4ac5665)<br>
第四轮<br>
II(a,b,c,d,M0,6,0xf4292244)<br>
II(d,a,b,c,M7,10,0x432aff97)<br>
II(c,d,a,b,M14,15,0xab9423a7)<br>
II(b,c,d,a,M5,21,0xfc93a039)<br>
II(a,b,c,d,M12,6,0x655b59c3)<br>
II(d,a,b,c,M3,10,0x8f0ccc92)<br>
II(c,d,a,b,M10,15,0xffeff47d)<br>
II(b,c,d,a,M1,21,0x85845dd1)<br>
II(a,b,c,d,M8,6,0x6fa87e4f)<br>
II(d,a,b,c,M15,10,0xfe2ce6e0)<br>
II(c,d,a,b,M6,15,0xa3014314)<br>
II(b,c,d,a,M13,21,0x4e0811a1)<br>
II(a,b,c,d,M4,6,0xf7537e82)<br>
II(d,a,b,c,M11,10,0xbd3af235)<br>
II(c,d,a,b,M2,15,0x2ad7d2bb)<br>
II(b,c,d,a,M9,21,0xeb86d391)<br>
常数ti可以如下选择:<br>
在第i步中,ti是4294967296*abs(sin(i))的
md5加密算法
咱们论坛用户密码就是这样加密的~~md5加密算法
一不小心给泄密了.不好意思md5加密算法
嘿嘿,只要你能解密 那就NB了md5加密算法
嘿嘿,那你告诉我数据库文件名和放哪里.一会儿我用你名字登陆好不好md5加密算法
任何的加密算法都是遵循一个规律。如果你知道算法你就能破解出来。以前网上曾经有类似的软件将密文转换成名文md5加密算法
<a target=_blank href=http://www.luntan.com.cn/soft/3057388612528317.htm>http://www.luntan.com.cn/soft/3057388612528317.htm</a>这个软件就可以破解md5的加密程序。而且是asp的md5加密算法
8楼的可以先参照md5加密算法的源程序。如果能看懂,那么你就能破解md5的密钥md5加密算法
笑话~~~~~没有破不了的密码!有规律的!破不了,怎么译码?只是复杂度的问题 那个著名的数据加密公司的网站不也被黑掉过~~~~~:)就不点名了,否则很没有面子的~~~~他的股市当天就跌得一塌糊涂~~~~~~~~
页:
[1]