📄 whrlpool.cpp
字号:
W64LIT(0x781818281878c0d8), W64LIT(0xaf23236523af0526),
W64LIT(0xf9c6c657c6f97eb8), W64LIT(0x6fe8e825e86f13fb),
W64LIT(0xa187879487a14ccb), W64LIT(0x62b8b8d5b862a911),
W64LIT(0x0501010301050809), W64LIT(0x6e4f4fd14f6e420d),
W64LIT(0xee36365a36eead9b), W64LIT(0x04a6a6f7a60459ff),
W64LIT(0xbdd2d26bd2bdde0c), W64LIT(0x06f5f502f506fb0e),
W64LIT(0x8079798b7980ef96), W64LIT(0xce6f6fb16fce5f30),
W64LIT(0xef9191ae91effc6d), W64LIT(0x075252f65207aaf8),
W64LIT(0xfd6060a060fd2747), W64LIT(0x76bcbcd9bc768935),
W64LIT(0xcd9b9bb09bcdac37), W64LIT(0x8c8e8e8f8e8c048a),
W64LIT(0x15a3a3f8a31571d2), W64LIT(0x3c0c0c140c3c606c),
W64LIT(0x8a7b7b8d7b8aff84), W64LIT(0xe135355f35e1b580),
W64LIT(0x691d1d271d69e8f5), W64LIT(0x47e0e03de04753b3),
W64LIT(0xacd7d764d7acf621), W64LIT(0xedc2c25bc2ed5e9c),
W64LIT(0x962e2e722e966d43), W64LIT(0x7a4b4bdd4b7a6229),
W64LIT(0x21fefe1ffe21a35d), W64LIT(0x165757f9571682d5),
W64LIT(0x4115153f1541a8bd), W64LIT(0xb677779977b69fe8),
W64LIT(0xeb37375937eba592), W64LIT(0x56e5e532e5567b9e),
W64LIT(0xd99f9fbc9fd98c13), W64LIT(0x17f0f00df017d323),
W64LIT(0x7f4a4ade4a7f6a20), W64LIT(0x95dada73da959e44),
W64LIT(0x255858e85825faa2), W64LIT(0xcac9c946c9ca06cf),
W64LIT(0x8d29297b298d557c), W64LIT(0x220a0a1e0a22505a),
W64LIT(0x4fb1b1ceb14fe150), W64LIT(0x1aa0a0fda01a69c9),
W64LIT(0xda6b6bbd6bda7f14), W64LIT(0xab85859285ab5cd9),
W64LIT(0x73bdbddabd73813c), W64LIT(0x345d5de75d34d28f),
W64LIT(0x5010103010508090), W64LIT(0x03f4f401f403f307),
W64LIT(0xc0cbcb40cbc016dd), W64LIT(0xc63e3e423ec6edd3),
W64LIT(0x1105050f0511282d), W64LIT(0xe66767a967e61f78),
W64LIT(0x53e4e431e4537397), W64LIT(0xbb27276927bb2502),
W64LIT(0x584141c341583273), W64LIT(0x9d8b8b808b9d2ca7),
W64LIT(0x01a7a7f4a70151f6), W64LIT(0x947d7d877d94cfb2),
W64LIT(0xfb9595a295fbdc49), W64LIT(0x9fd8d875d89f8e56),
W64LIT(0x30fbfb10fb308b70), W64LIT(0x71eeee2fee7123cd),
W64LIT(0x917c7c847c91c7bb), W64LIT(0xe36666aa66e31771),
W64LIT(0x8edddd7add8ea67b), W64LIT(0x4b171739174bb8af),
W64LIT(0x464747c947460245), W64LIT(0xdc9e9ebf9edc841a),
W64LIT(0xc5caca43cac51ed4), W64LIT(0x992d2d772d997558),
W64LIT(0x79bfbfdcbf79912e), W64LIT(0x1b070709071b383f),
W64LIT(0x23adadeaad2301ac), W64LIT(0x2f5a5aee5a2feab0),
W64LIT(0xb583839883b56cef), W64LIT(0xff33335533ff85b6),
W64LIT(0xf26363a563f23f5c), W64LIT(0x0a020206020a1012),
W64LIT(0x38aaaae3aa383993), W64LIT(0xa871719371a8afde),
W64LIT(0xcfc8c845c8cf0ec6), W64LIT(0x7d19192b197dc8d1),
W64LIT(0x704949db4970723b), W64LIT(0x9ad9d976d99a865f),
W64LIT(0x1df2f20bf21dc331), W64LIT(0x48e3e338e3484ba8),
W64LIT(0x2a5b5bed5b2ae2b9), W64LIT(0x92888885889234bc),
W64LIT(0xc89a9ab39ac8a43e), W64LIT(0xbe26266a26be2d0b),
W64LIT(0xfa32325632fa8dbf), W64LIT(0x4ab0b0cdb04ae959),
W64LIT(0x6ae9e926e96a1bf2), W64LIT(0x330f0f110f337877),
W64LIT(0xa6d5d562d5a6e633), W64LIT(0xba80809d80ba74f4),
W64LIT(0x7cbebedfbe7c9927), W64LIT(0xdecdcd4acdde26eb),
W64LIT(0xe434345c34e4bd89), W64LIT(0x754848d848757a32),
W64LIT(0x24ffff1cff24ab54), W64LIT(0x8f7a7a8e7a8ff78d),
W64LIT(0xea9090ad90eaf464), W64LIT(0x3e5f5fe15f3ec29d),
W64LIT(0xa020206020a01d3d), W64LIT(0xd56868b868d5670f),
W64LIT(0x721a1a2e1a72d0ca), W64LIT(0x2caeaeefae2c19b7),
W64LIT(0x5eb4b4c1b45ec97d), W64LIT(0x195454fc54199ace),
W64LIT(0xe59393a893e5ec7f), W64LIT(0xaa22226622aa0d2f),
W64LIT(0xe96464ac64e90763), W64LIT(0x12f1f10ef112db2a),
W64LIT(0xa273739573a2bfcc), W64LIT(0x5a121236125a9082),
W64LIT(0x5d4040c0405d3a7a), W64LIT(0x2808081808284048),
W64LIT(0xe8c3c358c3e85695), W64LIT(0x7becec29ec7b33df),
W64LIT(0x90dbdb70db90964d), W64LIT(0x1fa1a1fea11f61c0),
W64LIT(0x838d8d8a8d831c91), W64LIT(0xc93d3d473dc9f5c8),
W64LIT(0xf19797a497f1cc5b), W64LIT(0x0000000000000000),
W64LIT(0xd4cfcf4ccfd436f9), W64LIT(0x872b2b7d2b87456e),
W64LIT(0xb376769a76b397e1), W64LIT(0xb082829b82b064e6),
W64LIT(0xa9d6d667d6a9fe28), W64LIT(0x771b1b2d1b77d8c3),
W64LIT(0x5bb5b5c2b55bc174), W64LIT(0x29afafecaf2911be),
W64LIT(0xdf6a6abe6adf771d), W64LIT(0x0d5050f0500dbaea),
W64LIT(0x4c4545cf454c1257), W64LIT(0x18f3f308f318cb38),
W64LIT(0xf030305030f09dad), W64LIT(0x74efef2cef742bc4),
W64LIT(0xc33f3f413fc3e5da), W64LIT(0x1c5555ff551c92c7),
W64LIT(0x10a2a2fba21079db), W64LIT(0x65eaea23ea6503e9),
W64LIT(0xec6565af65ec0f6a), W64LIT(0x68babad3ba68b903),
W64LIT(0x932f2f712f93654a), W64LIT(0xe7c0c05dc0e74e8e),
W64LIT(0x81dede7fde81be60), W64LIT(0x6c1c1c241c6ce0fc),
W64LIT(0x2efdfd1afd2ebb46), W64LIT(0x644d4dd74d64521f),
W64LIT(0xe09292ab92e0e476), W64LIT(0xbc75759f75bc8ffa),
W64LIT(0x1e06060a061e3036), W64LIT(0x988a8a838a9824ae),
W64LIT(0x40b2b2cbb240f94b), W64LIT(0x59e6e637e6596385),
W64LIT(0x360e0e120e36707e), W64LIT(0x631f1f211f63f8e7),
W64LIT(0xf76262a662f73755), W64LIT(0xa3d4d461d4a3ee3a),
W64LIT(0x32a8a8e5a8322981), W64LIT(0xf49696a796f4c452),
W64LIT(0x3af9f916f93a9b62), W64LIT(0xf6c5c552c5f666a3),
W64LIT(0xb125256f25b13510), W64LIT(0x205959eb5920f2ab),
W64LIT(0xae84849184ae54d0), W64LIT(0xa772729672a7b7c5),
W64LIT(0xdd39394b39ddd5ec), W64LIT(0x614c4cd44c615a16),
W64LIT(0x3b5e5ee25e3bca94), W64LIT(0x857878887885e79f),
W64LIT(0xd838384838d8dde5), W64LIT(0x868c8c898c861498),
W64LIT(0xb2d1d16ed1b2c617), W64LIT(0x0ba5a5f2a50b41e4),
W64LIT(0x4de2e23be24d43a1), W64LIT(0xf86161a361f82f4e),
W64LIT(0x45b3b3c8b345f142), W64LIT(0xa521216321a51534),
W64LIT(0xd69c9cb99cd69408), W64LIT(0x661e1e221e66f0ee),
W64LIT(0x524343c543522261), W64LIT(0xfcc7c754c7fc76b1),
W64LIT(0x2bfcfc19fc2bb34f), W64LIT(0x1404040c04142024),
W64LIT(0x085151f35108b2e3), W64LIT(0xc79999b699c7bc25),
W64LIT(0xc46d6db76dc44f22), W64LIT(0x390d0d170d396865),
W64LIT(0x35fafa13fa358379), W64LIT(0x84dfdf7cdf84b669),
W64LIT(0x9b7e7e827e9bd7a9), W64LIT(0xb424246c24b43d19),
W64LIT(0xd73b3b4d3bd7c5fe), W64LIT(0x3dababe0ab3d319a),
W64LIT(0xd1cece4fced13ef0), W64LIT(0x5511113311558899),
W64LIT(0x898f8f8c8f890c83), W64LIT(0x6b4e4ed24e6b4a04),
W64LIT(0x51b7b7c4b751d166), W64LIT(0x60ebeb20eb600be0),
W64LIT(0xcc3c3c443cccfdc1), W64LIT(0xbf81819e81bf7cfd),
W64LIT(0xfe9494a194fed440), W64LIT(0x0cf7f704f70ceb1c),
W64LIT(0x67b9b9d6b967a118), W64LIT(0x5f131335135f988b),
W64LIT(0x9c2c2c742c9c7d51), W64LIT(0xb8d3d368d3b8d605),
W64LIT(0x5ce7e734e75c6b8c), W64LIT(0xcb6e6eb26ecb5739),
W64LIT(0xf3c4c451c4f36eaa), W64LIT(0x0f030305030f181b),
W64LIT(0x135656fa56138adc), W64LIT(0x494444cc44491a5e),
W64LIT(0x9e7f7f817f9edfa0), W64LIT(0x37a9a9e6a9372188),
W64LIT(0x822a2a7e2a824d67), W64LIT(0x6dbbbbd0bb6db10a),
W64LIT(0xe2c1c15ec1e24687), W64LIT(0x025353f55302a2f1),
W64LIT(0x8bdcdc79dc8bae72), W64LIT(0x270b0b1d0b275853),
W64LIT(0xd39d9dba9dd39c01), W64LIT(0xc16c6cb46cc1472b),
W64LIT(0xf531315331f595a4), W64LIT(0xb974749c74b987f3),
W64LIT(0x09f6f607f609e315), W64LIT(0x434646ca46430a4c),
W64LIT(0x26acace9ac2609a5), W64LIT(0x9789898689973cb5),
W64LIT(0x4414143c1444a0b4), W64LIT(0x42e1e13ee1425bba),
W64LIT(0x4e16163a164eb0a6), W64LIT(0xd23a3a4e3ad2cdf7),
W64LIT(0xd06969bb69d06f06), W64LIT(0x2d09091b092d4841),
W64LIT(0xad70709070ada7d7), W64LIT(0x54b6b6c7b654d96f),
W64LIT(0xb7d0d06dd0b7ce1e), W64LIT(0x7eeded2aed7e3bd6),
W64LIT(0xdbcccc49ccdb2ee2), W64LIT(0x574242c642572a68),
W64LIT(0xc29898b598c2b42c), W64LIT(0x0ea4a4f1a40e49ed),
W64LIT(0x8828287828885d75), W64LIT(0x315c5ce45c31da86),
W64LIT(0x3ff8f815f83f936b), W64LIT(0xa486869786a444c2),
};
static const word64 C2[256] = {
W64LIT(0xd8781818281878c0), W64LIT(0x26af23236523af05),
W64LIT(0xb8f9c6c657c6f97e), W64LIT(0xfb6fe8e825e86f13),
W64LIT(0xcba187879487a14c), W64LIT(0x1162b8b8d5b862a9),
W64LIT(0x0905010103010508), W64LIT(0x0d6e4f4fd14f6e42),
W64LIT(0x9bee36365a36eead), W64LIT(0xff04a6a6f7a60459),
W64LIT(0x0cbdd2d26bd2bdde), W64LIT(0x0e06f5f502f506fb),
W64LIT(0x968079798b7980ef), W64LIT(0x30ce6f6fb16fce5f),
W64LIT(0x6def9191ae91effc), W64LIT(0xf8075252f65207aa),
W64LIT(0x47fd6060a060fd27), W64LIT(0x3576bcbcd9bc7689),
W64LIT(0x37cd9b9bb09bcdac), W64LIT(0x8a8c8e8e8f8e8c04),
W64LIT(0xd215a3a3f8a31571), W64LIT(0x6c3c0c0c140c3c60),
W64LIT(0x848a7b7b8d7b8aff), W64LIT(0x80e135355f35e1b5),
W64LIT(0xf5691d1d271d69e8), W64LIT(0xb347e0e03de04753),
W64LIT(0x21acd7d764d7acf6), W64LIT(0x9cedc2c25bc2ed5e),
W64LIT(0x43962e2e722e966d), W64LIT(0x297a4b4bdd4b7a62),
W64LIT(0x5d21fefe1ffe21a3), W64LIT(0xd5165757f9571682),
W64LIT(0xbd4115153f1541a8), W64LIT(0xe8b677779977b69f),
W64LIT(0x92eb37375937eba5), W64LIT(0x9e56e5e532e5567b),
W64LIT(0x13d99f9fbc9fd98c), W64LIT(0x2317f0f00df017d3),
W64LIT(0x207f4a4ade4a7f6a), W64LIT(0x4495dada73da959e),
W64LIT(0xa2255858e85825fa), W64LIT(0xcfcac9c946c9ca06),
W64LIT(0x7c8d29297b298d55), W64LIT(0x5a220a0a1e0a2250),
W64LIT(0x504fb1b1ceb14fe1), W64LIT(0xc91aa0a0fda01a69),
W64LIT(0x14da6b6bbd6bda7f), W64LIT(0xd9ab85859285ab5c),
W64LIT(0x3c73bdbddabd7381), W64LIT(0x8f345d5de75d34d2),
W64LIT(0x9050101030105080), W64LIT(0x0703f4f401f403f3),
W64LIT(0xddc0cbcb40cbc016), W64LIT(0xd3c63e3e423ec6ed),
W64LIT(0x2d1105050f051128), W64LIT(0x78e66767a967e61f),
W64LIT(0x9753e4e431e45373), W64LIT(0x02bb27276927bb25),
W64LIT(0x73584141c3415832), W64LIT(0xa79d8b8b808b9d2c),
W64LIT(0xf601a7a7f4a70151), W64LIT(0xb2947d7d877d94cf),
W64LIT(0x49fb9595a295fbdc), W64LIT(0x569fd8d875d89f8e),
W64LIT(0x7030fbfb10fb308b), W64LIT(0xcd71eeee2fee7123),
W64LIT(0xbb917c7c847c91c7), W64LIT(0x71e36666aa66e317),
W64LIT(0x7b8edddd7add8ea6), W64LIT(0xaf4b171739174bb8),
W64LIT(0x45464747c9474602), W64LIT(0x1adc9e9ebf9edc84),
W64LIT(0xd4c5caca43cac51e), W64LIT(0x58992d2d772d9975),
W64LIT(0x2e79bfbfdcbf7991), W64LIT(0x3f1b070709071b38),
W64LIT(0xac23adadeaad2301), W64LIT(0xb02f5a5aee5a2fea),
W64LIT(0xefb583839883b56c), W64LIT(0xb6ff33335533ff85),
W64LIT(0x5cf26363a563f23f), W64LIT(0x120a020206020a10),
W64LIT(0x9338aaaae3aa3839), W64LIT(0xdea871719371a8af),
W64LIT(0xc6cfc8c845c8cf0e), W64LIT(0xd17d19192b197dc8),
W64LIT(0x3b704949db497072), W64LIT(0x5f9ad9d976d99a86),
W64LIT(0x311df2f20bf21dc3), W64LIT(0xa848e3e338e3484b),
W64LIT(0xb92a5b5bed5b2ae2), W64LIT(0xbc92888885889234),
W64LIT(0x3ec89a9ab39ac8a4), W64LIT(0x0bbe26266a26be2d),
W64LIT(0xbffa32325632fa8d), W64LIT(0x594ab0b0cdb04ae9),
W64LIT(0xf26ae9e926e96a1b), W64LIT(0x77330f0f110f3378),
W64LIT(0x33a6d5d562d5a6e6), W64LIT(0xf4ba80809d80ba74),
W64LIT(0x277cbebedfbe7c99), W64LIT(0xebdecdcd4acdde26),
W64LIT(0x89e434345c34e4bd), W64LIT(0x32754848d848757a),
W64LIT(0x5424ffff1cff24ab), W64LIT(0x8d8f7a7a8e7a8ff7),
W64LIT(0x64ea9090ad90eaf4), W64LIT(0x9d3e5f5fe15f3ec2),
W64LIT(0x3da020206020a01d), W64LIT(0x0fd56868b868d567),
W64LIT(0xca721a1a2e1a72d0), W64LIT(0xb72caeaeefae2c19),
W64LIT(0x7d5eb4b4c1b45ec9), W64LIT(0xce195454fc54199a),
W64LIT(0x7fe59393a893e5ec), W64LIT(0x2faa22226622aa0d),
W64LIT(0x63e96464ac64e907), W64LIT(0x2a12f1f10ef112db),
W64LIT(0xcca273739573a2bf), W64LIT(0x825a121236125a90),
W64LIT(0x7a5d4040c0405d3a), W64LIT(0x4828080818082840),
W64LIT(0x95e8c3c358c3e856), W64LIT(0xdf7becec29ec7b33),
W64LIT(0x4d90dbdb70db9096), W64LIT(0xc01fa1a1fea11f61),
W64LIT(0x91838d8d8a8d831c), W64LIT(0xc8c93d3d473dc9f5),
W64LIT(0x5bf19797a497f1cc), W64LIT(0x0000000000000000),
W64LIT(0xf9d4cfcf4ccfd436), W64LIT(0x6e872b2b7d2b8745),
W64LIT(0xe1b376769a76b397), W64LIT(0xe6b082829b82b064),
W64LIT(0x28a9d6d667d6a9fe), W64LIT(0xc3771b1b2d1b77d8),
W64LIT(0x745bb5b5c2b55bc1), W64LIT(0xbe29afafecaf2911),
W64LIT(0x1ddf6a6abe6adf77), W64LIT(0xea0d5050f0500dba),
W64LIT(0x574c4545cf454c12), W64LIT(0x3818f3f308f318cb),
W64LIT(0xadf030305030f09d), W64LIT(0xc474efef2cef742b),
W64LIT(0xdac33f3f413fc3e5), W64LIT(0xc71c5555ff551c92),
W64LIT(0xdb10a2a2fba21079), W64LIT(0xe965eaea23ea6503),
W64LIT(0x6aec6565af65ec0f), W64LIT(0x0368babad3ba68b9),
W64LIT(0x4a932f2f712f9365), W64LIT(0x8ee7c0c05dc0e74e),
W64LIT(0x6081dede7fde81be), W64LIT(0xfc6c1c1c241c6ce0),
W64LIT(0x462efdfd1afd2ebb), W64LIT(0x1f644d4dd74d6452),
W64LIT(0x76e09292ab92e0e4), W64LIT(0xfabc75759f75bc8f),
W64LIT(0x361e06060a061e30), W64LIT(0xae988a8a838a9824),
W64LIT(0x4b40b2b2cbb240f9), W64LIT(0x8559e6e637e65963),
W64LIT(0x7e360e0e120e3670), W64LIT(0xe7631f1f211f63f8),
W64LIT(0x55f76262a662f737), W64LIT(0x3aa3d4d461d4a3ee),
W64LIT(0x8132a8a8e5a83229), W64LIT(0x52f49696a796f4c4),
W64LIT(0x623af9f916f93a9b), W64LIT(0xa3f6c5c552c5f666),
W64LIT(0x10b125256f25b135), W64LIT(0xab205959eb5920f2),
W64LIT(0xd0ae84849184ae54), W64LIT(0xc5a772729672a7b7),
W64LIT(0xecdd39394b39ddd5), W64LIT(0x16614c4cd44c615a),
W64LIT(0x943b5e5ee25e3bca), W64LIT(0x9f857878887885e7),
W64LIT(0xe5d838384838d8dd), W64LIT(0x98868c8c898c8614),
W64LIT(0x17b2d1d16ed1b2c6), W64LIT(0xe40ba5a5f2a50b41),
W64LIT(0xa14de2e23be24d43), W64LIT(0x4ef86161a361f82f),
W64LIT(0x4245b3b3c8b345f1), W64LIT(0x34a521216321a515),
W64LIT(0x08d69c9cb99cd694), W64LIT(0xee661e1e221e66f0),
W64LIT(0x61524343c5435222), W64LIT(0xb1fcc7c754c7fc76),
W64LIT(0x4f2bfcfc19fc2bb3), W64LIT(0x241404040c041420),
W64LIT(0xe3085151f35108b2), W64LIT(0x25c79999b699c7bc),
W64LIT(0x22c46d6db76dc44f), W64LIT(0x65390d0d170d3968),
W64LIT(0x7935fafa13fa3583), W64LIT(0x6984dfdf7cdf84b6),
W64LIT(0xa99b7e7e827e9bd7), W64LIT(0x19b424246c24b43d),
W64LIT(0xfed73b3b4d3bd7c5), W64LIT(0x9a3dababe0ab3d31),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -