AUlife AUlife
银河系中的守望者
关注数: 5 粉丝数: 24 发帖数: 761 关注贴吧数: 62
求助MD5的算法 我的算法大致是下面的过程 STEP<0> <String>[AutoCAD 2012] <Length>[0C]<MD5>[5c712589490aafc9efceed06fb26c88c] STEP<1> *UINT8 <00>[ 41] <01>[ 75] <02>[ 74] <03>[ 6F] <04>[ 43] <05>[ 41] <06>[ 44] <07>[ 20] <08>[ 32] <09>[ 30] <10>[ 31] <11>[ 32] STEP<2> *UINT8 <00>[ 41] <01>[ 75] <02>[ 74] <03>[ 6F] <04>[ 43] <05>[ 41] <06>[ 44] <07>[ 20] <08>[ 32] <09>[ 30] <10>[ 31] <11>[ 32] <12>[ 80] <13>[ 0] <14>[ 0] <15>[ 0] <16>[ 0] <17>[ 0] <18>[ 0] <19>[ 0] <20>[ 0] <21>[ 0] <22>[ 0] <23>[ 0] <24>[ 0] <25>[ 0] <26>[ 0] <27>[ 0] <28>[ 0] <29>[ 0] <30>[ 0] <31>[ 0] <32>[ 0] <33>[ 0] <34>[ 0] <35>[ 0] <36>[ 0] <37>[ 0] <38>[ 0] <39>[ 0] <40>[ 0] <41>[ 0] <42>[ 0] <43>[ 0] <44>[ 0] <45>[ 0] <46>[ 0] <47>[ 0] <48>[ 0] <49>[ 0] <50>[ 0] <51>[ 0] <52>[ 0] <53>[ 0] <54>[ 0] <55>[ 0] STEP<3> *UINT8 <00>[ 41] <01>[ 75] <02>[ 74] <03>[ 6F] <04>[ 43] <05>[ 41] <06>[ 44] <07>[ 20] <08>[ 32] <09>[ 30] <10>[ 31] <11>[ 32] <12>[ 80] <13>[ 0] <14>[ 0] <15>[ 0] <16>[ 0] <17>[ 0] <18>[ 0] <19>[ 0] <20>[ 0] <21>[ 0] <22>[ 0] <23>[ 0] <24>[ 0] <25>[ 0] <26>[ 0] <27>[ 0] <28>[ 0] <29>[ 0] <30>[ 0] <31>[ 0] <32>[ 0] <33>[ 0] <34>[ 0] <35>[ 0] <36>[ 0] <37>[ 0] <38>[ 0] <39>[ 0] <40>[ 0] <41>[ 0] <42>[ 0] <43>[ 0] <44>[ 0] <45>[ 0] <46>[ 0] <47>[ 0] <48>[ 0] <49>[ 0] <50>[ 0] <51>[ 0] <52>[ 0] <53>[ 0] <54>[ 0] <55>[ 0] <56>[ C] <57>[ 0] <58>[ 0] <59>[ 0] <60>[ 0] <61>[ 0] <62>[ 0] <63>[ 0] STEP<4> *UINT32 <00>[6F747541] <01>[20444143] <02>[32313032] <03>[00000080] <04>[00000000] <05>[00000000] <06>[00000000] <07>[00000000] <08>[00000000] <09>[00000000] <10>[00000000] <11>[00000000] <12>[00000000] <13>[00000000] <14>[0000000C] <15>[00000000] STEP<5> UINT32 STATE[0] = 0x67452301; UINT32 STATE[1] = 0xEFCDAB89; UINT32 STATE[2] = 0x98BADCFE; UINT32 STATE[3] = 0x10325476; UINT32 r[64] = { 7,12,17,22, 7,12,17,22, 7,12,17,22, 7,12,17,22, 5 , 9,14,20, 5, 9,14,20, 5, 9,14,20, 5, 9,14,20, 4,11,16,23, 4,11,16,23, 4,11,16,23, 4,11,16,23, 6 ,10,15,21, 6,10,15,21, 6,10,15,21, 6,10,15,21} UINT32 k[64] = {0xd76aa478 ... 0xeb86d391} STEP<6> UINT32 a = STATE[0]; UINT32 b = STATE[1]; UINT32 c = STATE[2]; UINT32 d = STATE[3]; /*******[4轮16组64次交换]**********************/ #define F(x, y, z) (((x) & (y)) | ((~x) & (z))) #define G(x, y, z) (((x) & (z)) | ((y) & (~z))) #define H(x, y, z) ((x) ^ (y) ^ (z)) #define I(x, y, z) ((y) ^ ((x) | (~z))) #define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32-(n)))) #define FF(a, b, c, d, x, s, ac) { \(a) += F ((b), (c), (d)) + (x) + (UINT32)(ac); \(a) = ROTATE_LEFT ((a), (s)); \(a) += (b); \ } #define GG(a, b, c, d, x, s, ac) { \(a) += G ((b), (c), (d)) + (x) + (UINT32)(ac); \(a) = ROTATE_LEFT ((a), (s)); \(a) += (b); \ } #define HH(a, b, c, d, x, s, ac) { \(a) += H ((b), (c), (d)) + (x) + (UINT32)(ac); \(a) = ROTATE_LEFT ((a), (s)); \(a) += (b); \ } #define II(a, b, c, d, x, s, ac) { \(a) += I ((b), (c), (d)) + (x) + (UINT32)(ac); \(a) = ROTATE_LEFT ((a), (s)); \(a) += (b); \} /**************************************************/ STATE[0] += a; STATE[1] += b; STATE[2] += c; STATE[3] += d; SETP<7> STATE[0]:a6344a65 STATE[1]:b9a6be3b STATE[2]:9ba3bc7d STATE[3]:331e3b8f 虽然结果还没转成8位的,但完全没有标准结果的特征,问题处在哪里?是低位高位的问题吗?
1 下一页