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

📄 ripemd.cpp

📁 实现多种加解密算法
💻 CPP
📖 第 1 页 / 共 2 页
字号:
				II128(cc, dd, aa, bb, puiIn[ 7],  5);
				II128(bb, cc, dd, aa, puiIn[15],  6);
				II128(aa, bb, cc, dd, puiIn[14],  8);
				II128(dd, aa, bb, cc, puiIn[ 5],  6);
				II128(cc, dd, aa, bb, puiIn[ 6],  5);
				II128(bb, cc, dd, aa, puiIn[ 2], 12);
				//Parallel round 1
				III128(aaa, bbb, ccc, ddd, puiIn[ 5],  8); 
				III128(ddd, aaa, bbb, ccc, puiIn[14],  9);
				III128(ccc, ddd, aaa, bbb, puiIn[ 7],  9);
				III128(bbb, ccc, ddd, aaa, puiIn[ 0], 11);
				III128(aaa, bbb, ccc, ddd, puiIn[ 9], 13);
				III128(ddd, aaa, bbb, ccc, puiIn[ 2], 15);
				III128(ccc, ddd, aaa, bbb, puiIn[11], 15);
				III128(bbb, ccc, ddd, aaa, puiIn[ 4],  5);
				III128(aaa, bbb, ccc, ddd, puiIn[13],  7);
				III128(ddd, aaa, bbb, ccc, puiIn[ 6],  7);
				III128(ccc, ddd, aaa, bbb, puiIn[15],  8);
				III128(bbb, ccc, ddd, aaa, puiIn[ 8], 11);
				III128(aaa, bbb, ccc, ddd, puiIn[ 1], 14);
				III128(ddd, aaa, bbb, ccc, puiIn[10], 14);
				III128(ccc, ddd, aaa, bbb, puiIn[ 3], 12);
				III128(bbb, ccc, ddd, aaa, puiIn[12],  6);
				//Parallel round 2
				HHH128(aaa, bbb, ccc, ddd, puiIn[ 6],  9);
				HHH128(ddd, aaa, bbb, ccc, puiIn[11], 13);
				HHH128(ccc, ddd, aaa, bbb, puiIn[ 3], 15);
				HHH128(bbb, ccc, ddd, aaa, puiIn[ 7],  7);
				HHH128(aaa, bbb, ccc, ddd, puiIn[ 0], 12);
				HHH128(ddd, aaa, bbb, ccc, puiIn[13],  8);
				HHH128(ccc, ddd, aaa, bbb, puiIn[ 5],  9);
				HHH128(bbb, ccc, ddd, aaa, puiIn[10], 11);
				HHH128(aaa, bbb, ccc, ddd, puiIn[14],  7);
				HHH128(ddd, aaa, bbb, ccc, puiIn[15],  7);
				HHH128(ccc, ddd, aaa, bbb, puiIn[ 8], 12);
				HHH128(bbb, ccc, ddd, aaa, puiIn[12],  7);
				HHH128(aaa, bbb, ccc, ddd, puiIn[ 4],  6);
				HHH128(ddd, aaa, bbb, ccc, puiIn[ 9], 15);
				HHH128(ccc, ddd, aaa, bbb, puiIn[ 1], 13);
				HHH128(bbb, ccc, ddd, aaa, puiIn[ 2], 11);
				//Parallel round 3
				GGG128(aaa, bbb, ccc, ddd, puiIn[15],  9);
				GGG128(ddd, aaa, bbb, ccc, puiIn[ 5],  7);
				GGG128(ccc, ddd, aaa, bbb, puiIn[ 1], 15);
				GGG128(bbb, ccc, ddd, aaa, puiIn[ 3], 11);
				GGG128(aaa, bbb, ccc, ddd, puiIn[ 7],  8);
				GGG128(ddd, aaa, bbb, ccc, puiIn[14],  6);
				GGG128(ccc, ddd, aaa, bbb, puiIn[ 6],  6);
				GGG128(bbb, ccc, ddd, aaa, puiIn[ 9], 14);
				GGG128(aaa, bbb, ccc, ddd, puiIn[11], 12);
				GGG128(ddd, aaa, bbb, ccc, puiIn[ 8], 13);
				GGG128(ccc, ddd, aaa, bbb, puiIn[12],  5);
				GGG128(bbb, ccc, ddd, aaa, puiIn[ 2], 14);
				GGG128(aaa, bbb, ccc, ddd, puiIn[10], 13);
				GGG128(ddd, aaa, bbb, ccc, puiIn[ 0], 13);
				GGG128(ccc, ddd, aaa, bbb, puiIn[ 4],  7);
				GGG128(bbb, ccc, ddd, aaa, puiIn[13],  5);
				//Parallel round 4
				FFF128(aaa, bbb, ccc, ddd, puiIn[ 8], 15);
				FFF128(ddd, aaa, bbb, ccc, puiIn[ 6],  5);
				FFF128(ccc, ddd, aaa, bbb, puiIn[ 4],  8);
				FFF128(bbb, ccc, ddd, aaa, puiIn[ 1], 11);
				FFF128(aaa, bbb, ccc, ddd, puiIn[ 3], 14);
				FFF128(ddd, aaa, bbb, ccc, puiIn[11], 14);
				FFF128(ccc, ddd, aaa, bbb, puiIn[15],  6);
				FFF128(bbb, ccc, ddd, aaa, puiIn[ 0], 14);
				FFF128(aaa, bbb, ccc, ddd, puiIn[ 5],  6);
				FFF128(ddd, aaa, bbb, ccc, puiIn[12],  9);
				FFF128(ccc, ddd, aaa, bbb, puiIn[ 2], 12);
				FFF128(bbb, ccc, ddd, aaa, puiIn[13],  9);
				FFF128(aaa, bbb, ccc, ddd, puiIn[ 9], 12);
				FFF128(ddd, aaa, bbb, ccc, puiIn[ 7],  5);
				FFF128(ccc, ddd, aaa, bbb, puiIn[10], 15);
				FFF128(bbb, ccc, ddd, aaa, puiIn[14],  8);
				//Combine results
				ddd += cc + m_auiBuf[1];
				m_auiBuf[1] = m_auiBuf[2] + dd + aaa;
				m_auiBuf[2] = m_auiBuf[3] + aa + bbb;
				m_auiBuf[3] = m_auiBuf[0] + bb + ccc;
				m_auiBuf[0] = ddd;
			}
			break;

		case RIPEMD160:
			{
				unsigned int aa, bb, cc, dd, ee;
				unsigned int aaa, bbb, ccc, ddd, eee;
				aa = m_auiBuf[0];
				bb = m_auiBuf[1];
				cc = m_auiBuf[2];
				dd = m_auiBuf[3];
				ee = m_auiBuf[4];
				aaa = m_auiBuf[0];
				bbb = m_auiBuf[1];
				ccc = m_auiBuf[2];
				ddd = m_auiBuf[3];
				eee = m_auiBuf[4];
				//Round 1
				FF160(aa, bb, cc, dd, ee, puiIn[ 0], 11);
				FF160(ee, aa, bb, cc, dd, puiIn[ 1], 14);
				FF160(dd, ee, aa, bb, cc, puiIn[ 2], 15);
				FF160(cc, dd, ee, aa, bb, puiIn[ 3], 12);
				FF160(bb, cc, dd, ee, aa, puiIn[ 4],  5);
				FF160(aa, bb, cc, dd, ee, puiIn[ 5],  8);
				FF160(ee, aa, bb, cc, dd, puiIn[ 6],  7);
				FF160(dd, ee, aa, bb, cc, puiIn[ 7],  9);
				FF160(cc, dd, ee, aa, bb, puiIn[ 8], 11);
				FF160(bb, cc, dd, ee, aa, puiIn[ 9], 13);
				FF160(aa, bb, cc, dd, ee, puiIn[10], 14);
				FF160(ee, aa, bb, cc, dd, puiIn[11], 15);
				FF160(dd, ee, aa, bb, cc, puiIn[12],  6);
				FF160(cc, dd, ee, aa, bb, puiIn[13],  7);
				FF160(bb, cc, dd, ee, aa, puiIn[14],  9);
				FF160(aa, bb, cc, dd, ee, puiIn[15],  8);                         
				//Round 2
				GG160(ee, aa, bb, cc, dd, puiIn[ 7],  7);
				GG160(dd, ee, aa, bb, cc, puiIn[ 4],  6);
				GG160(cc, dd, ee, aa, bb, puiIn[13],  8);
				GG160(bb, cc, dd, ee, aa, puiIn[ 1], 13);
				GG160(aa, bb, cc, dd, ee, puiIn[10], 11);
				GG160(ee, aa, bb, cc, dd, puiIn[ 6],  9);
				GG160(dd, ee, aa, bb, cc, puiIn[15],  7);
				GG160(cc, dd, ee, aa, bb, puiIn[ 3], 15);
				GG160(bb, cc, dd, ee, aa, puiIn[12],  7);
				GG160(aa, bb, cc, dd, ee, puiIn[ 0], 12);
				GG160(ee, aa, bb, cc, dd, puiIn[ 9], 15);
				GG160(dd, ee, aa, bb, cc, puiIn[ 5],  9);
				GG160(cc, dd, ee, aa, bb, puiIn[ 2], 11);
				GG160(bb, cc, dd, ee, aa, puiIn[14],  7);
				GG160(aa, bb, cc, dd, ee, puiIn[11], 13);
				GG160(ee, aa, bb, cc, dd, puiIn[ 8], 12);
				//Round 3
				HH160(dd, ee, aa, bb, cc, puiIn[ 3], 11);
				HH160(cc, dd, ee, aa, bb, puiIn[10], 13);
				HH160(bb, cc, dd, ee, aa, puiIn[14],  6);
				HH160(aa, bb, cc, dd, ee, puiIn[ 4],  7);
				HH160(ee, aa, bb, cc, dd, puiIn[ 9], 14);
				HH160(dd, ee, aa, bb, cc, puiIn[15],  9);
				HH160(cc, dd, ee, aa, bb, puiIn[ 8], 13);
				HH160(bb, cc, dd, ee, aa, puiIn[ 1], 15);
				HH160(aa, bb, cc, dd, ee, puiIn[ 2], 14);
				HH160(ee, aa, bb, cc, dd, puiIn[ 7],  8);
				HH160(dd, ee, aa, bb, cc, puiIn[ 0], 13);
				HH160(cc, dd, ee, aa, bb, puiIn[ 6],  6);
				HH160(bb, cc, dd, ee, aa, puiIn[13],  5);
				HH160(aa, bb, cc, dd, ee, puiIn[11], 12);
				HH160(ee, aa, bb, cc, dd, puiIn[ 5],  7);
				HH160(dd, ee, aa, bb, cc, puiIn[12],  5);
				//Round 4
				II160(cc, dd, ee, aa, bb, puiIn[ 1], 11);
				II160(bb, cc, dd, ee, aa, puiIn[ 9], 12);
				II160(aa, bb, cc, dd, ee, puiIn[11], 14);
				II160(ee, aa, bb, cc, dd, puiIn[10], 15);
				II160(dd, ee, aa, bb, cc, puiIn[ 0], 14);
				II160(cc, dd, ee, aa, bb, puiIn[ 8], 15);
				II160(bb, cc, dd, ee, aa, puiIn[12],  9);
				II160(aa, bb, cc, dd, ee, puiIn[ 4],  8);
				II160(ee, aa, bb, cc, dd, puiIn[13],  9);
				II160(dd, ee, aa, bb, cc, puiIn[ 3], 14);
				II160(cc, dd, ee, aa, bb, puiIn[ 7],  5);
				II160(bb, cc, dd, ee, aa, puiIn[15],  6);
				II160(aa, bb, cc, dd, ee, puiIn[14],  8);
				II160(ee, aa, bb, cc, dd, puiIn[ 5],  6);
				II160(dd, ee, aa, bb, cc, puiIn[ 6],  5);
				II160(cc, dd, ee, aa, bb, puiIn[ 2], 12);
				//Round 5
				JJ160(bb, cc, dd, ee, aa, puiIn[ 4],  9);
				JJ160(aa, bb, cc, dd, ee, puiIn[ 0], 15);
				JJ160(ee, aa, bb, cc, dd, puiIn[ 5],  5);
				JJ160(dd, ee, aa, bb, cc, puiIn[ 9], 11);
				JJ160(cc, dd, ee, aa, bb, puiIn[ 7],  6);
				JJ160(bb, cc, dd, ee, aa, puiIn[12],  8);
				JJ160(aa, bb, cc, dd, ee, puiIn[ 2], 13);
				JJ160(ee, aa, bb, cc, dd, puiIn[10], 12);
				JJ160(dd, ee, aa, bb, cc, puiIn[14],  5);
				JJ160(cc, dd, ee, aa, bb, puiIn[ 1], 12);
				JJ160(bb, cc, dd, ee, aa, puiIn[ 3], 13);
				JJ160(aa, bb, cc, dd, ee, puiIn[ 8], 14);
				JJ160(ee, aa, bb, cc, dd, puiIn[11], 11);
				JJ160(dd, ee, aa, bb, cc, puiIn[ 6],  8);
				JJ160(cc, dd, ee, aa, bb, puiIn[15],  5);
				JJ160(bb, cc, dd, ee, aa, puiIn[13],  6);
				//Parallel Round 1
				JJJ160(aaa, bbb, ccc, ddd, eee, puiIn[ 5],  8);
				JJJ160(eee, aaa, bbb, ccc, ddd, puiIn[14],  9);
				JJJ160(ddd, eee, aaa, bbb, ccc, puiIn[ 7],  9);
				JJJ160(ccc, ddd, eee, aaa, bbb, puiIn[ 0], 11);
				JJJ160(bbb, ccc, ddd, eee, aaa, puiIn[ 9], 13);
				JJJ160(aaa, bbb, ccc, ddd, eee, puiIn[ 2], 15);
				JJJ160(eee, aaa, bbb, ccc, ddd, puiIn[11], 15);
				JJJ160(ddd, eee, aaa, bbb, ccc, puiIn[ 4],  5);
				JJJ160(ccc, ddd, eee, aaa, bbb, puiIn[13],  7);
				JJJ160(bbb, ccc, ddd, eee, aaa, puiIn[ 6],  7);
				JJJ160(aaa, bbb, ccc, ddd, eee, puiIn[15],  8);
				JJJ160(eee, aaa, bbb, ccc, ddd, puiIn[ 8], 11);
				JJJ160(ddd, eee, aaa, bbb, ccc, puiIn[ 1], 14);
				JJJ160(ccc, ddd, eee, aaa, bbb, puiIn[10], 14);
				JJJ160(bbb, ccc, ddd, eee, aaa, puiIn[ 3], 12);
				JJJ160(aaa, bbb, ccc, ddd, eee, puiIn[12],  6);
				//Parallel round 2
				III160(eee, aaa, bbb, ccc, ddd, puiIn[ 6],  9); 
				III160(ddd, eee, aaa, bbb, ccc, puiIn[11], 13);
				III160(ccc, ddd, eee, aaa, bbb, puiIn[ 3], 15);
				III160(bbb, ccc, ddd, eee, aaa, puiIn[ 7],  7);
				III160(aaa, bbb, ccc, ddd, eee, puiIn[ 0], 12);
				III160(eee, aaa, bbb, ccc, ddd, puiIn[13],  8);
				III160(ddd, eee, aaa, bbb, ccc, puiIn[ 5],  9);
				III160(ccc, ddd, eee, aaa, bbb, puiIn[10], 11);
				III160(bbb, ccc, ddd, eee, aaa, puiIn[14],  7);
				III160(aaa, bbb, ccc, ddd, eee, puiIn[15],  7);
				III160(eee, aaa, bbb, ccc, ddd, puiIn[ 8], 12);
				III160(ddd, eee, aaa, bbb, ccc, puiIn[12],  7);
				III160(ccc, ddd, eee, aaa, bbb, puiIn[ 4],  6);
				III160(bbb, ccc, ddd, eee, aaa, puiIn[ 9], 15);
				III160(aaa, bbb, ccc, ddd, eee, puiIn[ 1], 13);
				III160(eee, aaa, bbb, ccc, ddd, puiIn[ 2], 11);
				//Parallel round 3
				HHH160(ddd, eee, aaa, bbb, ccc, puiIn[15],  9);
				HHH160(ccc, ddd, eee, aaa, bbb, puiIn[ 5],  7);
				HHH160(bbb, ccc, ddd, eee, aaa, puiIn[ 1], 15);
				HHH160(aaa, bbb, ccc, ddd, eee, puiIn[ 3], 11);
				HHH160(eee, aaa, bbb, ccc, ddd, puiIn[ 7],  8);
				HHH160(ddd, eee, aaa, bbb, ccc, puiIn[14],  6);
				HHH160(ccc, ddd, eee, aaa, bbb, puiIn[ 6],  6);
				HHH160(bbb, ccc, ddd, eee, aaa, puiIn[ 9], 14);
				HHH160(aaa, bbb, ccc, ddd, eee, puiIn[11], 12);
				HHH160(eee, aaa, bbb, ccc, ddd, puiIn[ 8], 13);
				HHH160(ddd, eee, aaa, bbb, ccc, puiIn[12],  5);
				HHH160(ccc, ddd, eee, aaa, bbb, puiIn[ 2], 14);
				HHH160(bbb, ccc, ddd, eee, aaa, puiIn[10], 13);
				HHH160(aaa, bbb, ccc, ddd, eee, puiIn[ 0], 13);
				HHH160(eee, aaa, bbb, ccc, ddd, puiIn[ 4],  7);
				HHH160(ddd, eee, aaa, bbb, ccc, puiIn[13],  5);
				//Parallel round 4
				GGG160(ccc, ddd, eee, aaa, bbb, puiIn[ 8], 15);
				GGG160(bbb, ccc, ddd, eee, aaa, puiIn[ 6],  5);
				GGG160(aaa, bbb, ccc, ddd, eee, puiIn[ 4],  8);
				GGG160(eee, aaa, bbb, ccc, ddd, puiIn[ 1], 11);
				GGG160(ddd, eee, aaa, bbb, ccc, puiIn[ 3], 14);
				GGG160(ccc, ddd, eee, aaa, bbb, puiIn[11], 14);
				GGG160(bbb, ccc, ddd, eee, aaa, puiIn[15],  6);
				GGG160(aaa, bbb, ccc, ddd, eee, puiIn[ 0], 14);
				GGG160(eee, aaa, bbb, ccc, ddd, puiIn[ 5],  6);
				GGG160(ddd, eee, aaa, bbb, ccc, puiIn[12],  9);
				GGG160(ccc, ddd, eee, aaa, bbb, puiIn[ 2], 12);
				GGG160(bbb, ccc, ddd, eee, aaa, puiIn[13],  9);
				GGG160(aaa, bbb, ccc, ddd, eee, puiIn[ 9], 12);
				GGG160(eee, aaa, bbb, ccc, ddd, puiIn[ 7],  5);
				GGG160(ddd, eee, aaa, bbb, ccc, puiIn[10], 15);
				GGG160(ccc, ddd, eee, aaa, bbb, puiIn[14],  8);
				//Parallel round 5
				FFF160(bbb, ccc, ddd, eee, aaa, puiIn[12] ,  8);
				FFF160(aaa, bbb, ccc, ddd, eee, puiIn[15] ,  5);
				FFF160(eee, aaa, bbb, ccc, ddd, puiIn[10] , 12);
				FFF160(ddd, eee, aaa, bbb, ccc, puiIn[ 4] ,  9);
				FFF160(ccc, ddd, eee, aaa, bbb, puiIn[ 1] , 12);
				FFF160(bbb, ccc, ddd, eee, aaa, puiIn[ 5] ,  5);
				FFF160(aaa, bbb, ccc, ddd, eee, puiIn[ 8] , 14);
				FFF160(eee, aaa, bbb, ccc, ddd, puiIn[ 7] ,  6);
				FFF160(ddd, eee, aaa, bbb, ccc, puiIn[ 6] ,  8);
				FFF160(ccc, ddd, eee, aaa, bbb, puiIn[ 2] , 13);
				FFF160(bbb, ccc, ddd, eee, aaa, puiIn[13] ,  6);
				FFF160(aaa, bbb, ccc, ddd, eee, puiIn[14] ,  5);
				FFF160(eee, aaa, bbb, ccc, ddd, puiIn[ 0] , 15);
				FFF160(ddd, eee, aaa, bbb, ccc, puiIn[ 3] , 13);
				FFF160(ccc, ddd, eee, aaa, bbb, puiIn[ 9] , 11);
				FFF160(bbb, ccc, ddd, eee, aaa, puiIn[11] , 11);
				//Combine Results
				ddd += cc + m_auiBuf[1];
				m_auiBuf[1] = m_auiBuf[2] + dd + eee;
				m_auiBuf[2] = m_auiBuf[3] + ee + aaa;
				m_auiBuf[3] = m_auiBuf[4] + aa + bbb;
				m_auiBuf[4] = m_auiBuf[0] + bb + ccc;
				m_auiBuf[0] = ddd;
			}
			break;
		
/*
		case RIPEMD256:
			{

			}
			break;

		case RIPEMD320:
			{

			}
			break;
*/

	}
}

⌨️ 快捷键说明

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