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

📄 rijndael.cpp

📁 这个文件中如何在EVC 中c++对注册表的操作。
💻 CPP
📖 第 1 页 / 共 4 页
字号:
//--FILE DEFINITION-----------------------------------------------------------
//
/*! \file
   File name:  Rijndael.cpp
   Author:     Yves Lessard

   Date:       2000/04/27(YYYY/MM/DD)

   Library:		Win32.

   Version:    1.00

   Usage:      Rijndael (pronounced rain-dahl) is the block cipher algorithm 
               that has been selected by the U.S
	
   Notes:		See header for infos.
*/
//----------------------------------------------------------------------------
#include "Rijndael.h"


const int Rijndael::sm_alog[256] =
{
	1, 3, 5, 15, 17, 51, 85, 255, 26, 46, 114, 150, 161, 248, 19, 53, 
	95, 225, 56, 72, 216, 115, 149, 164, 247, 2, 6, 10, 30, 34, 102, 170, 
	229, 52, 92, 228, 55, 89, 235, 38, 106, 190, 217, 112, 144, 171, 230, 49, 
	83, 245, 4, 12, 20, 60, 68, 204, 79, 209, 104, 184, 211, 110, 178, 205, 
	76, 212, 103, 169, 224, 59, 77, 215, 98, 166, 241, 8, 24, 40, 120, 136, 
	131, 158, 185, 208, 107, 189, 220, 127, 129, 152, 179, 206, 73, 219, 118, 154, 
	181, 196, 87, 249, 16, 48, 80, 240, 11, 29, 39, 105, 187, 214, 97, 163, 
	254, 25, 43, 125, 135, 146, 173, 236, 47, 113, 147, 174, 233, 32, 96, 160, 
	251, 22, 58, 78, 210, 109, 183, 194, 93, 231, 50, 86, 250, 21, 63, 65, 
	195, 94, 226, 61, 71, 201, 64, 192, 91, 237, 44, 116, 156, 191, 218, 117, 
	159, 186, 213, 100, 172, 239, 42, 126, 130, 157, 188, 223, 122, 142, 137, 128, 
	155, 182, 193, 88, 232, 35, 101, 175, 234, 37, 111, 177, 200, 67, 197, 84, 
	252, 31, 33, 99, 165, 244, 7, 9, 27, 45, 119, 153, 176, 203, 70, 202, 
	69, 207, 74, 222, 121, 139, 134, 145, 168, 227, 62, 66, 198, 81, 243, 14, 
	18, 54, 90, 238, 41, 123, 141, 140, 143, 138, 133, 148, 167, 242, 13, 23, 
	57, 75, 221, 124, 132, 151, 162, 253, 28, 36, 108, 180, 199, 82, 246, 1
};

const int Rijndael::sm_log[256] =
{
	0, 0, 25, 1, 50, 2, 26, 198, 75, 199, 27, 104, 51, 238, 223, 3, 
	100, 4, 224, 14, 52, 141, 129, 239, 76, 113, 8, 200, 248, 105, 28, 193, 
	125, 194, 29, 181, 249, 185, 39, 106, 77, 228, 166, 114, 154, 201, 9, 120, 
	101, 47, 138, 5, 33, 15, 225, 36, 18, 240, 130, 69, 53, 147, 218, 142, 
	150, 143, 219, 189, 54, 208, 206, 148, 19, 92, 210, 241, 64, 70, 131, 56, 
	102, 221, 253, 48, 191, 6, 139, 98, 179, 37, 226, 152, 34, 136, 145, 16, 
	126, 110, 72, 195, 163, 182, 30, 66, 58, 107, 40, 84, 250, 133, 61, 186, 
	43, 121, 10, 21, 155, 159, 94, 202, 78, 212, 172, 229, 243, 115, 167, 87, 
	175, 88, 168, 80, 244, 234, 214, 116, 79, 174, 233, 213, 231, 230, 173, 232, 
	44, 215, 117, 122, 235, 22, 11, 245, 89, 203, 95, 176, 156, 169, 81, 160, 
	127, 12, 246, 111, 23, 196, 73, 236, 216, 67, 31, 45, 164, 118, 123, 183, 
	204, 187, 62, 90, 251, 96, 177, 134, 59, 82, 161, 108, 170, 85, 41, 157, 
	151, 178, 135, 144, 97, 190, 220, 252, 188, 149, 207, 205, 55, 63, 91, 209, 
	83, 57, 132, 60, 65, 162, 109, 71, 20, 42, 158, 93, 86, 242, 211, 171, 
	68, 17, 146, 217, 35, 32, 46, 137, 180, 124, 184, 38, 119, 153, 227, 165, 
	103, 74, 237, 222, 197, 49, 254, 24, 13, 99, 140, 128, 192, 247, 112, 7
};

const TCHAR Rijndael::sm_S[256] =
{
	99, 124, 119, 123, -14, 107, 111, -59, 48, 1, 103, 43, -2, -41, -85, 118, 
	-54, -126, -55, 125, -6, 89, 71, -16, -83, -44, -94, -81, -100, -92, 114, -64, 
	-73, -3, -109, 38, 54, 63, -9, -52, 52, -91, -27, -15, 113, -40, 49, 21, 
	4, -57, 35, -61, 24, -106, 5, -102, 7, 18, -128, -30, -21, 39, -78, 117, 
	9, -125, 44, 26, 27, 110, 90, -96, 82, 59, -42, -77, 41, -29, 47, -124, 
	83, -47, 0, -19, 32, -4, -79, 91, 106, -53, -66, 57, 74, 76, 88, -49, 
	-48, -17, -86, -5, 67, 77, 51, -123, 69, -7, 2, 127, 80, 60, -97, -88, 
	81, -93, 64, -113, -110, -99, 56, -11, -68, -74, -38, 33, 16, -1, -13, -46, 
	-51, 12, 19, -20, 95, -105, 68, 23, -60, -89, 126, 61, 100, 93, 25, 115, 
	96, -127, 79, -36, 34, 42, -112, -120, 70, -18, -72, 20, -34, 94, 11, -37, 
	-32, 50, 58, 10, 73, 6, 36, 92, -62, -45, -84, 98, -111, -107, -28, 121, 
	-25, -56, 55, 109, -115, -43, 78, -87, 108, 86, -12, -22, 101, 122, -82, 8, 
	-70, 120, 37, 46, 28, -90, -76, -58, -24, -35, 116, 31, 75, -67, -117, -118, 
	112, 62, -75, 102, 72, 3, -10, 14, 97, 53, 87, -71, -122, -63, 29, -98, 
	-31, -8, -104, 17, 105, -39, -114, -108, -101, 30, -121, -23, -50, 85, 40, -33, 
	-116, -95, -119, 13, -65, -26, 66, 104, 65, -103, 45, 15, -80, 84, -69, 22
};

const TCHAR Rijndael::sm_Si[256] =
{
	82, 9, 106, -43, 48, 54, -91, 56, -65, 64, -93, -98, -127, -13, -41, -5, 
	124, -29, 57, -126, -101, 47, -1, -121, 52, -114, 67, 68, -60, -34, -23, -53, 
	84, 123, -108, 50, -90, -62, 35, 61, -18, 76, -107, 11, 66, -6, -61, 78, 
	8, 46, -95, 102, 40, -39, 36, -78, 118, 91, -94, 73, 109, -117, -47, 37, 
	114, -8, -10, 100, -122, 104, -104, 22, -44, -92, 92, -52, 93, 101, -74, -110, 
	108, 112, 72, 80, -3, -19, -71, -38, 94, 21, 70, 87, -89, -115, -99, -124, 
	-112, -40, -85, 0, -116, -68, -45, 10, -9, -28, 88, 5, -72, -77, 69, 6, 
	-48, 44, 30, -113, -54, 63, 15, 2, -63, -81, -67, 3, 1, 19, -118, 107, 
	58, -111, 17, 65, 79, 103, -36, -22, -105, -14, -49, -50, -16, -76, -26, 115, 
	-106, -84, 116, 34, -25, -83, 53, -123, -30, -7, 55, -24, 28, 117, -33, 110, 
	71, -15, 26, 113, 29, 41, -59, -119, 111, -73, 98, 14, -86, 24, -66, 27, 
	-4, 86, 62, 75, -58, -46, 121, 32, -102, -37, -64, -2, 120, -51, 90, -12, 
	31, -35, -88, 51, -120, 7, -57, 49, -79, 18, 16, 89, 39, -128, -20, 95, 
	96, 81, 127, -87, 25, -75, 74, 13, 45, -27, 122, -97, -109, -55, -100, -17, 
	-96, -32, 59, 77, -82, 42, -11, -80, -56, -21, -69, 60, -125, 83, -103, 97, 
	23, 43, 4, 126, -70, 119, -42, 38, -31, 105, 20, 99, 85, 33, 12, 125
};

const int Rijndael::sm_T1[256] =
{
	-966564955, -126059388, -294160487, -159679603, 
	-855539, -697603139, -563122255, -1849309868, 
	1613770832, 33620227, -832084055, 1445669757, 
	-402719207, -1244145822, 1303096294, -327780710, 
	-1882535355, 528646813, -1983264448, -92439161, 
	-268764651, -1302767125, -1907931191, -68095989, 
	1101901292, -1277897625, 1604494077, 1169141738, 
	597466303, 1403299063, -462261610, -1681866661, 
	1974974402, -503448292, 1033081774, 1277568618, 
	1815492186, 2118074177, -168298750, -2083730353, 
	1748251740, 1369810420, -773462732, -101584632, 
	-495881837, -1411852173, 1647391059, 706024767, 
	134480908, -1782069422, 1176707941, -1648114850, 
	806885416, 932615841, 168101135, 798661301, 
	235341577, 605164086, 461406363, -538779075, 
	-840176858, 1311188841, 2142417613, -361400929, 
	302582043, 495158174, 1479289972, 874125870, 
	907746093, -596742478, -1269146898, 1537253627, 
	-1538108682, 1983593293, -1210657183, 2108928974, 
	1378429307, -572267714, 1580150641, 327451799, 
	-1504488459, -1177431704, 0, -1041371860, 
	1075847264, -469959649, 2041688520, -1235526675, 
	-731223362, -1916023994, 1740553945, 1916352843, 
	-1807070498, -1739830060, -1336387352, -2049978550, 
	-1143943061, -974131414, 1336584933, -302253290, 
	-2042412091, -1706209833, 1714631509, 293963156, 
	-1975171633, -369493744, 67240454, -25198719, 
	-1605349136, 2017213508, 631218106, 1269344483, 
	-1571728909, 1571005438, -2143272768, 93294474, 
	1066570413, 563977660, 1882732616, -235539196, 
	1673313503, 2008463041, -1344611723, 1109467491, 
	537923632, -436207846, -34344178, -1076702611, 
	-2117218996, 403442708, 638784309, -1007883217, 
	-1101045791, 899127202, -2008791860, 773265209, 
	-1815821225, 1437050866, -58818942, 2050833735, 
	-932944724, -1168286233, 840505643, -428641387, 
	-1067425632, 427917720, -1638969391, -1545806721, 
	1143087718, 1412049534, 999329963, 193497219, 
	-1941551414, -940642775, 1807268051, 672404540, 
	-1478566279, -1134666014, 369822493, -1378100362, 
	-606019525, 1681011286, 1949973070, 336202270, 
	-1840690725, 201721354, 1210328172, -1201906460, 
	-1614626211, -1110191250, 1135389935, -1000185178, 
	965841320, 831886756, -739974089, -226920053, 
	-706222286, -1949775805, 1849112409, -630362697, 
	26054028, -1311386268, -1672589614, 1235855840, 
	-663982924, -1403627782, -202050553, -806688219, 
	-899324497, -193299826, 1202630377, 268961816, 
	1874508501, -260540280, 1243948399, 1546530418, 
	941366308, 1470539505, 1941222599, -1748580783, 
	-873928669, -1579295364, -395021156, 1042226977, 
	-1773450275, 1639824860, 227249030, 260737669, 
	-529502064, 2084453954, 1907733956, -865704278, 
	-1874310952, 100860677, -134810111, 470683154, 
	-1033805405, 1781871967, -1370007559, 1773779408, 
	394692241, -1715355304, 974986535, 664706745, 
	-639508168, -336005101, 731420851, 571543859, 
	-764843589, -1445340816, 126783113, 865375399, 
	765172662, 1008606754, 361203602, -907417312, 
	-2016489911, -1437248001, 1344809080, -1512054918, 
	59542671, 1503764984, 160008576, 437062935, 
	1707065306, -672733647, -2076032314, -798463816, 
	-2109652541, 697932208, 1512910199, 504303377, 
	2075177163, -1470868228, 1841019862, 739644986
};

const int Rijndael::sm_T2[256] =
{
	-1513725085, -2064089988, -1712425097, -1913226373, 
	234877682, -1110021269, -1310822545, 1418839493, 
	1348481072, 50462977, -1446090905, 2102799147, 
	434634494, 1656084439, -431117397, -1695779210, 
	1167051466, -1658879358, 1082771913, -2013627011, 
	368048890, -340633255, -913422521, 201060592, 
	-331240019, 1739838676, -44064094, -364531793, 
	-1088185188, -145513308, -1763413390, 1536934080, 
	-1032472649, 484572669, -1371696237, 1783375398, 
	1517041206, 1098792767, 49674231, 1334037708, 
	1550332980, -195975771, 886171109, 150598129, 
	-1813876367, 1940642008, 1398944049, 1059722517, 
	201851908, 1385547719, 1699095331, 1587397571, 
	674240536, -1590192490, 252314885, -1255171430, 
	151914247, 908333586, -1692696448, 1038082786, 
	651029483, 1766729511, -847269198, -1612024459, 
	454166793, -1642232957, 1951935532, 775166490, 
	758520603, -1294176658, -290170278, -77881184, 
	-157003182, 1299594043, 1639438038, -830622797, 
	2068982057, 1054729187, 1901997871, -1760328572, 
	-173649069, 1757008337, 0, 750906861, 
	1614815264, 535035132, -931548751, -306816165, 
	-1093375382, 1183697867, -647512386, 1265776953, 
	-560706998, -728216500, -391096232, 1250283471, 
	1807470800, 717615087, -447763798, 384695291, 
	-981056701, -677753523, 1432761139, -1810791035, 
	-813021883, 283769337, 100925954, -2114027649, 
	-257929136, 1148730428, -1171939425, -481580888, 
	-207466159, -27417693, -1065336768, -1979347057, 
	-1388342638, -1138647651, 1215313976, 82966005, 
	-547111748, -1049119050, 1974459098, 1665278241, 
	807407632, 451280895, 251524083, 1841287890, 
	1283575245, 337120268, 891687699, 801369324, 
	-507617441, -1573546089, -863484860, 959321879, 
	1469301956, -229267545, -2097381762, 1199193405, 
	-1396153244, -407216803, 724703513, -1780059277, 
	-1598005152, -1743158911, -778154161, 2141445340, 
	1715741218, 2119445034, -1422159728, -2096396152, 
	-896776634, 700968686, -747915080, 1009259540, 
	2041044702, -490971554, 487983883, 1991105499, 
	1004265696, 1449407026, 1316239930, 504629770, 
	-611169975, 168560134, 1816667172, -457679780, 
	1570751170, 1857934291, -280777556, -1497079198, 
	-1472622191, -1540254315, 936633572, -1947043463, 
	852879335, 1133234376, 1500395319, -1210421907, 
	-1946055283, 1689376213, -761508274, -532043351, 
	-1260884884, -89369002, 133428468, 634383082, 
	-1345690267, -1896580486, -381178194, 403703816, 
	-714097990, -1997506440, 1867130149, 1918643758, 
	607656988, -245913946, -948718412, 1368901318, 
	600565992, 2090982877, -1662487436, 557719327, 
	-577352885, -597574211, -2045932661, -2062579062, 
	-1864339344, 1115438654, -999180875, -1429445018, 
	-661632952, 84280067, 33027830, 303828494, 
	-1547542175, 1600795957, -106014889, -798377543, 
	-1860729210, 1486471617, 658119965, -1188585826, 
	953803233, 334231800, -1288988520, 857870609, 
	-1143838359, 1890179545, -1995993458, -1489791852, 
	-1238525029, 574365214, -1844082809, 550103529, 
	1233637070, -5614251, 2018519080, 2057691103, 
	-1895592820, -128343647, -2146858615, 387583245, 
	-630865985, 836232934, -964410814, -1194301336, 
	-1014873791, -1339450983, 2002398509, 287182607, 
	-881086288, -56077228, -697451589, 975967766
};

const int Rijndael::sm_T3[256] =
{
	1671808611, 2089089148, 2006576759, 2072901243, 
	-233963534, 1807603307, 1873927791, -984313403, 
	810573872, 16974337, 1739181671, 729634347, 
	-31856642, -681396777, -1410970197, 1989864566, 
	-901410870, -2103631998, -918517303, 2106063485, 
	-99225606, 1508618841, 1204391495, -267650064, 
	-1377025619, -731401260, -1560453214, -1343601233, 
	-1665195108, -1527295068, 1922491506, -1067738176, 
	-1211992649, -48438787, -1817297517, 644500518, 
	911895606, 1061256767, -150800905, -867204148, 
	878471220, -1510714971, -449523227, -251069967, 
	1905517169, -663508008, 827548209, 356461077, 
	67897348, -950889017, 593839651, -1017209405, 
	405286936, -1767819370, 84871685, -1699401830, 
	118033927, 305538066, -2137318528, -499261470, 
	-349778453, 661212711, -1295155278, 1973414517, 
	152769033, -2086789757, 745822252, 439235610, 
	455947803, 1857215598, 1525593178, -1594139744, 
	1391895634, 994932283, -698239018, -1278313037, 
	695947817, -482419229, 795958831, -2070473852, 
	1408607827, -781665839, 0, -315833875, 
	543178784, -65018884, -1312261711, 1542305371, 
	1790891114, -884568629, -1093048386, 961245753, 
	1256100938, 1289001036, 1491644504, -817199665, 
	-798245936, -282409489, -1427812438, -82383365, 
	1137018435, 1305975373, 861234739, -2053893755, 
	1171229253, -116332039, 33948674, 2139225727, 
	1357946960, 1011120188, -1615190625, -1461498968, 
	1374921297, -1543610973, 1086357568, -1886780017, 
	-1834139758, -1648615011, 944271416, -184225291, 
	-1126210628, -1228834890, -629821478, 560153121, 
	271589392, -15014401, -217121293, -764559406, 
	-850624051, 202643468, 322250259, -332413972, 
	1608629855, -1750977129, 1154254916, 389623319, 
	-1000893500, -1477290585, 2122513534, 1028094525, 
	1689045092, 1575467613, 422261273, 1939203699, 
	1621147744, -2120738431, 1339137615, -595614756, 
	577127458, 712922154, -1867826288, -2004677752, 
	1187679302, -299251730, -1194103880, 339486740, 
	-562452514, 1591917662, 186455563, -612979237, 
	-532948000, 844522546, 978220090, 169743370, 
	1239126601, 101321734, 611076132, 1558493276, 
	-1034051646, -747717165, -1393605716, 1655096418, 
	-1851246191, -1784401515, -466103324, 2039214713, 
	-416098841, -935097400, 928607799, 1840765549, 
	-1920204403, -714821163, 1322425422, -1444918871, 
	1823791212, 1459268694, -200805388, -366620694, 
	1706019429, 2056189050, -1360443474, 135794696, 
	-1160417350, 2022240376, 628050469, 779246638, 
	472135708, -1494132826, -1261997132, -967731258, 
	-400307224, -579034659, 1956440180, 522272287, 
	1272813131, -1109630531, -1954148981, -1970991222, 
	1888542832, 1044544574, -1245417035, 1722469478, 
	1222152264, 50660867, -167643146, 236067854, 
	1638122081, 895445557, 1475980887, -1177523783, 
	-2037311610, -1051158079, 489110045, -1632032866, 
	-516367903, -132912136, -1733088360, 288563729, 
	1773916777, -646927911, -1903622258, -1800981612, 
	-1682559589, 505560094, -2020469369, -383727127, 
	-834041906, 1442818645, 678973480, -545610273, 
	-1936784500, -1577559647, -1988097655, 219617805, 
	-1076206145, -432941082, 1120306242, 1756942440, 
	1103331905, -1716508263, 762796589, 252780047, 
	-1328841808, 1425844308, -1143575109, 372911126
};

const int Rijndael::sm_T4[256] =
{
	1667474886, 2088535288, 2004326894, 2071694838, 
	-219017729, 1802223062, 1869591006, -976923503, 
	808472672, 16843522, 1734846926, 724270422, 
	-16901657, -673750347, -1414797747, 1987484396, 
	-892713585, -2105369313, -909557623, 2105378810, 
	-84273681, 1499065266, 1195886990, -252703749, 
	-1381110719, -724277325, -1566376609, -1347425723, 
	-1667449053, -1532692653, 1920112356, -1061135461, 
	-1212693899, -33743647, -1819038147, 640051788, 
	909531756, 1061110142, -134806795, -859025533, 
	875846760, -1515850671, -437963567, -235861767, 
	1903268834, -656903253, 825316194, 353713962, 
	67374088, -943238507, 589522246, -1010606435, 
	404236336, -1768513225, 84217610, -1701137105, 
	117901582, 303183396, -2139055333, -488489505, 
	-336910643, 656894286, -1296904833, 1970642922, 
	151591698, -2088526307, 741110872, 437923380, 
	454765878, 1852748508, 1515908788, -1600062629, 
	1381168804, 993742198, -690593353, -1280061827, 
	690584402, -471646499, 791638366, -2071685357, 
	1398011302, -774805319, 0, -303223615, 
	538992704, -50585629, -1313748871, 1532751286, 
	1785380564, -875870579, -1094788761, 960056178, 
	1246420628, 1280103576, 1482221744, -808498555, 

⌨️ 快捷键说明

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