⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 md5coll.cpp

📁 属于加密解密领域的
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	
	for(i = 0; i < 10; i++)
	{
		/* D1 */
		Q0[2] = (RANDOM() | 0x8c000800) & ~(0x02208026 | 0x701f10c0);
		Q0[2] |= (Q0[1] & 0x701f10c0);
		Q1[2] = Q0[2] - 0x7dffffe0;

		X0[17] = RR(Q0[2] - Q0[1], 12) - F(Q0[1], B0, C0)
		  - D0 - 0xe8c7b756;
		X1[17] = RR(Q1[2] - Q1[1], 12) - F(Q1[1], B1, C1)
		  - D1 - 0xe8c7b756;
		if(X0[17] != X1[17])
		  continue;
		break;
	}

	if(i >= 10)
		goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* C1 */
		Q0[3] = (RANDOM() | 0xbe1f0966) & ~(0x40201080 | 0x00000018);
		Q0[3] |= (Q0[2] & 0x00000018);
		Q1[3] = Q0[3] - 0x7dfef7e0;

		X0[18] = RR(Q0[3] - Q0[2], 17) - F(Q0[2], Q0[1], B0)
		  - C0 - 0x242070db;
		X1[18] = RR(Q1[3] - Q1[2], 17) - F(Q1[2], Q1[1], B1)
		  - C1 - 0x242070db;
		if(X0[18] != X1[18])
		  continue;
		break;
	}

	if(i >= 10)
		goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* B1 */
		Q0[4] = (RANDOM() | 0xba040010) & ~(0x443b19ee | 0x00000601);
		Q0[4] |= (Q0[3] & 0x00000601);
		Q1[4] = Q0[4] - 0x7dffffe2;

		X0[19] = RR(Q0[4] - Q0[3], 22) - F(Q0[3], Q0[2], Q0[1])
		  - B0 - 0xc1bdceee;
		X1[19] = RR(Q1[4] - Q1[3], 22) - F(Q1[3], Q1[2], Q1[1])
		  - B1 - 0xc1bdceee;
		if(X0[19] != X1[19])
		  continue;
		break;
	}
	if(i >= 10)
		goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* A2 */
		Q0[5] = (RANDOM() | 0x482f0e50) & ~0xb41011af;
		Q1[5] = Q0[5] - 0x7ffffcbf;

		X0[20] = RR(Q0[5] - Q0[4], 7) - F(Q0[4], Q0[3], Q0[2])
		  - Q0[1] - 0xf57c0faf;
		X1[20] = RR(Q1[5] - Q1[4], 7) - F(Q1[4], Q1[3], Q1[2])
		  - Q1[1] - 0xf57c0faf;
		if((X0[20] ^ X1[20]) != 0x80000000)
		  continue;
		break;
	}
	if(i >= 10)
		goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* D2 */
		Q0[6] = (RANDOM() | 0x04220c56) & ~0x9a1113a9;
		Q1[6] = Q0[6] - 0x80110000;

		X0[21] = RR(Q0[6] - Q0[5], 12) - F(Q0[5], Q0[4], Q0[3])
		  - Q0[2] - 0x4787c62a;
		X1[21] = RR(Q1[6] - Q1[5], 12) - F(Q1[5], Q1[4], Q1[3])
		  - Q1[2] - 0x4787c62a;
		if(X0[21] != X1[21])
		  continue;
		break;
	}
	if(i >= 10)
		goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* C2 */
		Q0[7] = (RANDOM() | 0x96011e01) & ~(0x083201c0 | 0x01808000);
		Q0[7] |= (Q0[6] & 0x01808000);
		Q1[7] = Q0[7] - 0x88000040;

		X0[22] = RR(Q0[7] - Q0[6], 17) - F(Q0[6], Q0[5], Q0[4])
		  - Q0[3] - 0xa8304613;
		X1[22] = RR(Q1[7] - Q1[6], 17) - F(Q1[6], Q1[5], Q1[4])
		  - Q1[3] - 0xa8304613;
		if(X0[22] != X1[22])
		  continue;
		break;
	}
	if(i >= 10)
		goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* B2 */
		Q0[8] = (RANDOM() | 0x843283c0) & ~(0x1b810001 | 0x00000002);
		Q0[8] |= (Q0[7] & 0x00000002);
		Q1[8] = Q0[8] - 0x80818000;

		X0[23] = RR(Q0[8] - Q0[7], 22) - F(Q0[7], Q0[6], Q0[5])
		  - Q0[4] - 0xfd469501;
		X1[23] = RR(Q1[8] - Q1[7], 22) - F(Q1[7], Q1[6], Q1[5])
		  - Q1[4] - 0xfd469501;
		if(X0[23] != X1[23])
		  continue;
		break;
	}
	if(i >= 10)
		goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* A3 */
		Q0[9] = (RANDOM() | 0x9c0101c1) & ~(0x03828202 | 0x00001000);
		Q0[9] |= (Q0[8] & 0x00001000);
		Q1[9] = Q0[9] - 0x7fffffbf;

		X0[24] = RR(Q0[9] - Q0[8], 7) - F(Q0[8], Q0[7], Q0[6])
		  - Q0[5] - 0x698098d8;
		X1[24] = RR(Q1[9] - Q1[8], 7) - F(Q1[8], Q1[7], Q1[6])
		  - Q1[5] - 0x698098d8;
		if(X0[24] != X1[24])
		  continue;
		break;
	}
	if(i >= 10)
		goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* D3 */
		Q0[10] = (RANDOM() | 0x878383c0) & ~0x00041003;
		Q1[10] = Q0[10] - 0x7ffff000;

		X0[25] = RR(Q0[10] - Q0[9], 12) - F(Q0[9], Q0[8], Q0[7])
		  - Q0[6] - 0x8b44f7af;
		X1[25] = RR(Q1[10] - Q1[9], 12) - F(Q1[9], Q1[8], Q1[7])
		  - Q1[6] - 0x8b44f7af;
		if(X0[25] != X1[25])
		  continue;
		break;
	}
	if(i >= 10)
		goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* C3 */
		Q0[11] = (RANDOM() | 0x800583c3) & ~(0x00021000 | 0x00086000);
		Q0[11] |= (Q0[10] & 0x00086000);
		Q1[11] = Q0[11] - 0x80000000;

		X0[26] = RR(Q0[11] - Q0[10], 17) - F(Q0[10], Q0[9], Q0[8])
		  - Q0[7] - 0xffff5bb1;
		X1[26] = RR(Q1[11] - Q1[10], 17) - F(Q1[10], Q1[9], Q1[8])
		  - Q1[7] - 0xffff5bb1;
		if(X0[26] != X1[26])
		  continue;
		break;
	}
	if(i >= 10)
		goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* B3 */
		Q0[12] = (RANDOM() | 0x80081080) & ~(0x0007e000 | 0x7f000000);
		Q0[12] |= (Q0[11] & 0x7f000000);
		Q1[12] = Q0[12] - 0x80002080;

		X0[27] = RR(Q0[12] - Q0[11], 22) - F(Q0[11], Q0[10], Q0[9])
		  - Q0[8] - 0x895cd7be;
		X1[27] = RR(Q1[12] - Q1[11], 22) - F(Q1[11], Q1[10], Q1[9])
		  - Q1[8] - 0x895cd7be;
		if((X0[27] ^ X1[27]) != 0x00008000)
		  continue;
		break;
	}
	if(i >= 10)
		goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* A4 */
		Q0[13] = (RANDOM() | 0x3f0fe008) & ~0x80000080;
		Q1[13] = Q0[13] - 0x7f000000;

		X0[28] = RR(Q0[13] - Q0[12], 7) - F(Q0[12], Q0[11], Q0[10])
		  - Q0[9] - 0x6b901122;
		X1[28] = RR(Q1[13] - Q1[12], 7) - F(Q1[12], Q1[11], Q1[10])
		  - Q1[9] - 0x6b901122;
		if(X0[28] != X1[28])
		  continue;
		break;
	}
	if(i >= 10)
		goto block2_again;

  for(i = 0; i < 10; i++)
  {
    /* D4 */
    Q0[14] = (RANDOM() | 0x400be088) & ~0xbf040000;
    Q1[14] = Q0[14] - 0x80000000;

    X0[29] = RR(Q0[14] - Q0[13], 12) - F(Q0[13], Q0[12], Q0[11])
      - Q0[10] - 0xfd987193;
    X1[29] = RR(Q1[14] - Q1[13], 12) - F(Q1[13], Q1[12], Q1[11])
      - Q1[10] - 0xfd987193;
    if(X0[29] != X1[29])
      continue;
    break;
  }
  if(i >= 10)
	  goto block2_again;

	for(i = 0; i < 10; i++)
	{
		/* C4 */
		Q0[15] = (RANDOM() | 0x7d000000) & ~0x82008008;
		Q1[15] = Q0[15] - 0x7fff7ff8;

		X0[30] = RR(Q0[15] - Q0[14], 17) - F(Q0[14], Q0[13], Q0[12])
		  - Q0[11] - 0xa679438e;
		X1[30] = RR(Q1[15] - Q1[14], 17) - F(Q1[14], Q1[13], Q1[12])
		  - Q1[11] - 0xa679438e;
		if((X0[30] ^ X1[30]) != 0x80000000)
		  continue;
		break;
	}
	if(i >= 10)
		goto block2_again;

#define LOOP_21 1000

	printf("\t\tLOOP #1 passed.\n");

	for(i = 0; i < LOOP_21; i++)
	{
		/* B4 */
		Q0[16] = (RANDOM() | 0x20000000) & ~0x80000000;
		Q1[16] = Q0[16] - 0xa0000000;

		X0[31] = RR(Q0[16] - Q0[15], 22) - F(Q0[15], Q0[14], Q0[13])
		  - Q0[12] - 0x49b40821;
		X1[31] = RR(Q1[16] - Q1[15], 22) - F(Q1[15], Q1[14], Q1[13])
		  - Q1[12] - 0x49b40821;
		if(X0[31] != X1[31])
		  continue;

		/* A5 */
		Q0[17] = RL(G(Q0[16], Q0[15], Q0[14]) + Q0[13]
		  + X0[17] + 0xf61e2562, 5) + Q0[16];
		if((Q0[17] & 0x80028008) != (Q0[16] & 0x00008008))
		  continue;
		Q1[17] = RL(G(Q1[16], Q1[15], Q1[14]) + Q1[13]
		  + X1[17] + 0xf61e2562, 5) + Q1[16];
		if((Q0[17] ^ Q1[17]) != 0x80000000)
		  continue;

		/* D5 */
		Q0[18] = RL(G(Q0[17], Q0[16], Q0[15]) + Q0[14]
		  + X0[22] + 0xc040b340, 9) + Q0[17];
		if((Q0[18] & 0xa0020000)
		  != ((Q0[17] & 0x20000000) | 0x00020000))
		{
		  continue;
		}
		Q1[18] = RL(G(Q1[17], Q1[16], Q1[15]) + Q1[14]
		  + X1[22] + 0xc040b340, 9) + Q1[17];
		if((Q0[18] ^ Q1[18]) != 0x80000000)
		  continue;

		/* C5 */
		Q0[19] = RL(G(Q0[18], Q0[17], Q0[16]) + Q0[15]
		  + X0[27] + 0x265e5a51, 14) + Q0[18];
		if(Q0[19] & 0x80020000)
		  continue;
		Q1[19] = RL(G(Q1[18], Q1[17], Q1[16]) + Q1[15]
		  + X1[27] + 0x265e5a51, 14) + Q1[18];
		if((Q0[19] - Q1[19]) != 0x7ffe0000)
		  continue;

		/* B5 */
		Q0[20] = RL(G(Q0[19], Q0[18], Q0[17]) + Q0[16]
		  + X0[16] + 0xe9b6c7aa, 20) + Q0[19];
		if(Q0[20] & 0x80000000)
		  continue;
		Q1[20] = RL(G(Q1[19], Q1[18], Q1[17]) + Q1[16]
		  + X1[16] + 0xe9b6c7aa, 20) + Q1[19];
		if((Q0[20] ^ Q1[20]) != 0x80000000)
		  continue;

		/* A6 */
		Q0[21] = RL(G(Q0[20], Q0[19], Q0[18]) + Q0[17]
		  + X0[21] + 0xd62f105d, 5) + Q0[20];
		if((Q0[21] & 0x80020000) != (Q0[20] & 0x00020000))
		  continue;
		Q1[21] = RL(G(Q1[20], Q1[19], Q1[18]) + Q1[17]
		  + X1[21] + 0xd62f105d, 5) + Q1[20];
		if((Q0[21] ^ Q1[21]) != 0x80000000)
		  continue;
		break;
	}
	if(i >= LOOP_21)
		goto block2_again;

#define LOOP_22	0x4000000

	printf("\t\t\tLOOP #2 passed.\n");

	for(i = 0; i < LOOP_22; i++)
	{
		/* B4 */
		Q0[16] ^= mask22[RANDOM() % 30];
		Q1[16] = Q0[16] - 0xa0000000;

		  X0[31] = RR(Q0[16] - Q0[15], 22) - F(Q0[15], Q0[14], Q0[13])
			  - Q0[12] - 0x49b40821;
		  X1[31] = RR(Q1[16] - Q1[15], 22) - F(Q1[15], Q1[14], Q1[13])
			  - Q1[12] - 0x49b40821;
		  if(X0[31] != X1[31])
			  continue;

		/* A5 */
		Q0[17] = RL(G(Q0[16], Q0[15], Q0[14]) + Q0[13]
		  + X0[17] + 0xf61e2562, 5) + Q0[16];
		if((Q0[17] & 0x80028008) != (Q0[16] & 0x00008008))
		  continue;
		Q1[17] = RL(G(Q1[16], Q1[15], Q1[14]) + Q1[13]
		  + X1[17] + 0xf61e2562, 5) + Q1[16];
		if((Q0[17] ^ Q1[17]) != 0x80000000)
		  continue;

		/* D5 */
		Q0[18] = RL(G(Q0[17], Q0[16], Q0[15]) + Q0[14]
		  + X0[22] + 0xc040b340, 9) + Q0[17];
		if((Q0[18] & 0xa0020000)
		  != ((Q0[17] & 0x20000000) | 0x00020000))
		{
		  continue;
		}
		Q1[18] = RL(G(Q1[17], Q1[16], Q1[15]) + Q1[14]
		  + X1[22] + 0xc040b340, 9) + Q1[17];
		if((Q0[18] ^ Q1[18]) != 0x80000000)
		  continue;

		/* C5 */
		Q0[19] = RL(G(Q0[18], Q0[17], Q0[16]) + Q0[15]
		  + X0[27] + 0x265e5a51, 14) + Q0[18];
		if(Q0[19] & 0x80020000)
		  continue;
		Q1[19] = RL(G(Q1[18], Q1[17], Q1[16]) + Q1[15]
		  + X1[27] + 0x265e5a51, 14) + Q1[18];
		if((Q0[19] - Q1[19]) != 0x7ffe0000)
		  continue;

		/* B5 */
		Q0[20] = RL(G(Q0[19], Q0[18], Q0[17]) + Q0[16]
		  + X0[16] + 0xe9b6c7aa, 20) + Q0[19];
		if(Q0[20] & 0x80000000)
		  continue;
		Q1[20] = RL(G(Q1[19], Q1[18], Q1[17]) + Q1[16]
		  + X1[16] + 0xe9b6c7aa, 20) + Q1[19];
		if((Q0[20] ^ Q1[20]) != 0x80000000)
		  continue;

		/* A6 */
		Q0[21] = RL(G(Q0[20], Q0[19], Q0[18]) + Q0[17]
		  + X0[21] + 0xd62f105d, 5) + Q0[20];
		if((Q0[21] & 0x80020000) != (Q0[20] & 0x00020000))
		  continue;
		Q1[21] = RL(G(Q1[20], Q1[19], Q1[18]) + Q1[17]
		  + X1[21] + 0xd62f105d, 5) + Q1[20];
		if((Q0[21] ^ Q1[21]) != 0x80000000)
		  continue;

		/* D6 */
		Q0[22] = RL(G(Q0[21], Q0[20], Q0[19]) + Q0[18]
		  + X0[26] + 0x02441453, 9) + Q0[21];
		if(Q0[22] & 0x80000000)
		  continue;
		Q1[22] = RL(G(Q1[21], Q1[20], Q1[19]) + Q1[18]
		  + X1[26] + 0x02441453, 9) + Q1[21];
		if((Q0[22] ^ Q1[22]) != 0x80000000)
		  continue;

		/* C6 */
		Q0[23] = RL(G(Q0[22], Q0[21], Q0[20]) + Q0[19]
		  + X0[31] + 0xd8a1e681, 14) + Q0[22];
		if(Q0[23] & 0x80000000)
		  continue;
		Q1[23] = RL(G(Q1[22], Q1[21], Q1[20]) + Q1[19]
		  + X1[31] + 0xd8a1e681, 14) + Q1[22];
		if(Q0[23] != Q1[23])
		  continue;

		/* B6 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -