亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? validat3.cpp

?? 此壓縮包內有cast、blowfish、simple、des、cryptlib、rsa、mqueue、xtrcrypt、gf256、base32,base64、modexppc、network等一些的
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
// validat3.cpp - written and placed in the public domain by Wei Dai

#include "pch.h"
#include "validate.h"

#define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1
#include "smartptr.h"
#include "crc.h"
#include "adler32.h"
#include "md2.h"
#include "md4.h"
#include "md5.h"
#include "sha.h"
#include "tiger.h"
#include "ripemd.h"

#include "hmac.h"
#include "ttmac.h"

#include "integer.h"
#include "pwdbased.h"
#include "filters.h"
#include "hex.h"
#include "files.h"

#include <iostream>
#include <iomanip>

USING_NAMESPACE(CryptoPP)
USING_NAMESPACE(std)

struct HashTestTuple
{
	HashTestTuple(const char *input, const char *output, unsigned int repeatTimes=1)
		: input((byte *)input), output((byte *)output), inputLen(strlen(input)), repeatTimes(repeatTimes) {}
	
	HashTestTuple(const char *input, unsigned int inputLen, const char *output, unsigned int repeatTimes)
		: input((byte *)input), output((byte *)output), inputLen(inputLen), repeatTimes(repeatTimes) {}

	const byte *input, *output;
	size_t inputLen;
	unsigned int repeatTimes;
};

bool HashModuleTest(HashTransformation &md, const HashTestTuple *testSet, unsigned int testSetSize)
{
	bool pass=true, fail;
	SecByteBlock digest(md.DigestSize());

	for (unsigned int i=0; i<testSetSize; i++)
	{
		unsigned j;

		for (j=0; j<testSet[i].repeatTimes; j++)
			md.Update(testSet[i].input, testSet[i].inputLen);
		md.Final(digest);
		fail = memcmp(digest, testSet[i].output, md.DigestSize()) != 0;
		pass = pass && !fail;

		cout << (fail ? "FAILED   " : "passed   ");
		for (j=0; j<md.DigestSize(); j++)
			cout << setw(2) << setfill('0') << hex << (int)digest[j];
		cout << "   \"" << (char *)testSet[i].input << '\"';
		if (testSet[i].repeatTimes != 1)
			cout << " repeated " << dec << testSet[i].repeatTimes << " times";
		cout  << endl;
	}

	return pass;
}

bool ValidateCRC32()
{
	HashTestTuple testSet[] = 
	{
		HashTestTuple("", "\x00\x00\x00\x00"),
		HashTestTuple("a", "\x43\xbe\xb7\xe8"),
		HashTestTuple("abc", "\xc2\x41\x24\x35"),
		HashTestTuple("message digest", "\x7f\x9d\x15\x20"),
		HashTestTuple("abcdefghijklmnopqrstuvwxyz", "\xbd\x50\x27\x4c"),
		HashTestTuple("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", "\xd2\xe6\xc2\x1f"),
		HashTestTuple("12345678901234567890123456789012345678901234567890123456789012345678901234567890", "\x72\x4a\xa9\x7c"),
		HashTestTuple("123456789", "\x26\x39\xf4\xcb")
	};

	CRC32 crc;

	cout << "\nCRC-32 validation suite running...\n\n";
	return HashModuleTest(crc, testSet, sizeof(testSet)/sizeof(testSet[0]));
}

bool ValidateAdler32()
{
	HashTestTuple testSet[] = 
	{
		HashTestTuple("", "\x00\x00\x00\x01"),
		HashTestTuple("a", "\x00\x62\x00\x62"),
		HashTestTuple("abc", "\x02\x4d\x01\x27"),
		HashTestTuple("message digest", "\x29\x75\x05\x86"),
		HashTestTuple("abcdefghijklmnopqrstuvwxyz", "\x90\x86\x0b\x20"),
		HashTestTuple("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", "\x8a\xdb\x15\x0c"),
		HashTestTuple("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "\x15\xd8\x70\xf9", 15625)
	};

	Adler32 md;

	cout << "\nAdler-32 validation suite running...\n\n";
	return HashModuleTest(md, testSet, sizeof(testSet)/sizeof(testSet[0]));
}

bool ValidateMD2()
{
	HashTestTuple testSet[] = 
	{
		HashTestTuple("", "\x83\x50\xe5\xa3\xe2\x4c\x15\x3d\xf2\x27\x5c\x9f\x80\x69\x27\x73"),
		HashTestTuple("a", "\x32\xec\x01\xec\x4a\x6d\xac\x72\xc0\xab\x96\xfb\x34\xc0\xb5\xd1"),
		HashTestTuple("abc", "\xda\x85\x3b\x0d\x3f\x88\xd9\x9b\x30\x28\x3a\x69\xe6\xde\xd6\xbb"),
		HashTestTuple("message digest", "\xab\x4f\x49\x6b\xfb\x2a\x53\x0b\x21\x9f\xf3\x30\x31\xfe\x06\xb0"),
		HashTestTuple("abcdefghijklmnopqrstuvwxyz", "\x4e\x8d\xdf\xf3\x65\x02\x92\xab\x5a\x41\x08\xc3\xaa\x47\x94\x0b"),
		HashTestTuple("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", "\xda\x33\xde\xf2\xa4\x2d\xf1\x39\x75\x35\x28\x46\xc3\x03\x38\xcd"),
		HashTestTuple("12345678901234567890123456789012345678901234567890123456789012345678901234567890", "\xd5\x97\x6f\x79\xd8\x3d\x3a\x0d\xc9\x80\x6c\x3c\x66\xf3\xef\xd8")
	};

	Weak::MD2 md2;

	cout << "\nMD2 validation suite running...\n\n";
	return HashModuleTest(md2, testSet, sizeof(testSet)/sizeof(testSet[0]));
}

bool ValidateMD4()
{
	HashTestTuple testSet[] = 
	{
		HashTestTuple("", "\x31\xd6\xcf\xe0\xd1\x6a\xe9\x31\xb7\x3c\x59\xd7\xe0\xc0\x89\xc0"),
		HashTestTuple("a", "\xbd\xe5\x2c\xb3\x1d\xe3\x3e\x46\x24\x5e\x05\xfb\xdb\xd6\xfb\x24"),
		HashTestTuple("abc", "\xa4\x48\x01\x7a\xaf\x21\xd8\x52\x5f\xc1\x0a\xe8\x7a\xa6\x72\x9d"),
		HashTestTuple("message digest", "\xd9\x13\x0a\x81\x64\x54\x9f\xe8\x18\x87\x48\x06\xe1\xc7\x01\x4b"),
		HashTestTuple("abcdefghijklmnopqrstuvwxyz", "\xd7\x9e\x1c\x30\x8a\xa5\xbb\xcd\xee\xa8\xed\x63\xdf\x41\x2d\xa9"),
		HashTestTuple("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", "\x04\x3f\x85\x82\xf2\x41\xdb\x35\x1c\xe6\x27\xe1\x53\xe7\xf0\xe4"),
		HashTestTuple("12345678901234567890123456789012345678901234567890123456789012345678901234567890", "\xe3\x3b\x4d\xdc\x9c\x38\xf2\x19\x9c\x3e\x7b\x16\x4f\xcc\x05\x36")
	};

	Weak::MD4 md4;

	cout << "\nMD4 validation suite running...\n\n";
	return HashModuleTest(md4, testSet, sizeof(testSet)/sizeof(testSet[0]));
}

bool ValidateMD5()
{
	HashTestTuple testSet[] = 
	{
		HashTestTuple("", "\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04\xe9\x80\x09\x98\xec\xf8\x42\x7e"),
		HashTestTuple("a", "\x0c\xc1\x75\xb9\xc0\xf1\xb6\xa8\x31\xc3\x99\xe2\x69\x77\x26\x61"),
		HashTestTuple("abc", "\x90\x01\x50\x98\x3c\xd2\x4f\xb0\xd6\x96\x3f\x7d\x28\xe1\x7f\x72"),
		HashTestTuple("message digest", "\xf9\x6b\x69\x7d\x7c\xb7\x93\x8d\x52\x5a\x2f\x31\xaa\xf1\x61\xd0"),
		HashTestTuple("abcdefghijklmnopqrstuvwxyz", "\xc3\xfc\xd3\xd7\x61\x92\xe4\x00\x7d\xfb\x49\x6c\xca\x67\xe1\x3b"),
		HashTestTuple("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", "\xd1\x74\xab\x98\xd2\x77\xd9\xf5\xa5\x61\x1c\x2c\x9f\x41\x9d\x9f"),
		HashTestTuple("12345678901234567890123456789012345678901234567890123456789012345678901234567890", "\x57\xed\xf4\xa2\x2b\xe3\xc9\x55\xac\x49\xda\x2e\x21\x07\xb6\x7a")
	};

	Weak::MD5 md5;

	cout << "\nMD5 validation suite running...\n\n";
	return HashModuleTest(md5, testSet, sizeof(testSet)/sizeof(testSet[0]));
}

bool ValidateSHA()
{
	HashTestTuple testSet[] = 
	{
		HashTestTuple("abc", "\xA9\x99\x3E\x36\x47\x06\x81\x6A\xBA\x3E\x25\x71\x78\x50\xC2\x6C\x9C\xD0\xD8\x9D"),
		HashTestTuple("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", "\x84\x98\x3E\x44\x1C\x3B\xD2\x6E\xBA\xAE\x4A\xA1\xF9\x51\x29\xE5\xE5\x46\x70\xF1"),
		HashTestTuple("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "\x34\xAA\x97\x3C\xD4\xC4\xDA\xA4\xF6\x1E\xEB\x2B\xDB\xAD\x27\x31\x65\x34\x01\x6F", 15625)
	};

	SHA sha;

	cout << "\nSHA validation suite running...\n\n";
	return HashModuleTest(sha, testSet, sizeof(testSet)/sizeof(testSet[0]));
}

bool ValidateSHA2()
{
	HashTestTuple testSet256[] = 
	{
		HashTestTuple("abc", "\xba\x78\x16\xbf\x8f\x01\xcf\xea\x41\x41\x40\xde\x5d\xae\x22\x23\xb0\x03\x61\xa3\x96\x17\x7a\x9c\xb4\x10\xff\x61\xf2\x00\x15\xad"),
		HashTestTuple("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1"),
	};

	bool pass = true;

	cout << "\nSHA-256 validation suite running...\n\n";
	SHA256 sha256;
	pass = HashModuleTest(sha256, testSet256, sizeof(testSet256)/sizeof(testSet256[0])) && pass;

	cout << "\nSHA-384 validation suite running...\n\n";

#ifdef WORD64_AVAILABLE
	HashTestTuple testSet384[] = 
	{
		HashTestTuple("abc", "\xcb\x00\x75\x3f\x45\xa3\x5e\x8b\xb5\xa0\x3d\x69\x9a\xc6\x50\x07\x27\x2c\x32\xab\x0e\xde\xd1\x63\x1a\x8b\x60\x5a\x43\xff\x5b\xed\x80\x86\x07\x2b\xa1\xe7\xcc\x23\x58\xba\xec\xa1\x34\xc8\x25\xa7"),
		HashTestTuple("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", "\x09\x33\x0c\x33\xf7\x11\x47\xe8\x3d\x19\x2f\xc7\x82\xcd\x1b\x47\x53\x11\x1b\x17\x3b\x3b\x05\xd2\x2f\xa0\x80\x86\xe3\xb0\xf7\x12\xfc\xc7\xc7\x1a\x55\x7e\x2d\xb9\x66\xc3\xe9\xfa\x91\x74\x60\x39"),
	};

	SHA384 sha384;
	pass = HashModuleTest(sha384, testSet384, sizeof(testSet384)/sizeof(testSet384[0])) && pass;
#else
	cout << "word64 not available, skipping SHA-384 validation." << endl;
#endif

	cout << "\nSHA-512 validation suite running...\n\n";

#ifdef WORD64_AVAILABLE
	HashTestTuple testSet512[] = 
	{
		HashTestTuple("abc", "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41\x31\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55\xd3\x9a\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3\xfe\xeb\xbd\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f\xa5\x4c\xa4\x9f"),
		HashTestTuple("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14\x3f\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88\x90\x18\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4\xb5\x43\x3a\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b\x87\x4b\xe9\x09"),
	};

	SHA512 sha512;
	pass = HashModuleTest(sha512, testSet512, sizeof(testSet512)/sizeof(testSet512[0])) && pass;
#else
	cout << "word64 not available, skipping SHA-512 validation." << endl;
#endif

	return pass;
}

bool ValidateTiger()
{
	cout << "\nTiger validation suite running...\n\n";

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜精品一区二区三区| 亚洲综合色网站| 日韩免费高清电影| 91精品中文字幕一区二区三区| 欧美私模裸体表演在线观看| 一本大道久久精品懂色aⅴ| 99久久精品久久久久久清纯| www.综合网.com| 色综合久久综合网97色综合| 欧美性猛片aaaaaaa做受| 欧美日韩在线播放| 欧美一卡二卡在线| 久久久综合激的五月天| 中文字幕一区二区三区四区| 亚洲日本在线视频观看| 午夜a成v人精品| 毛片一区二区三区| 丁香天五香天堂综合| 成人午夜av电影| 91黄色在线观看| 欧美大片拔萝卜| 国产精品网站在线播放| 亚洲色图另类专区| 日本午夜精品视频在线观看| 国内成人精品2018免费看| 丁香婷婷综合五月| 欧美人体做爰大胆视频| 日韩免费一区二区| 亚洲精选视频在线| 亚洲aⅴ怡春院| 黑人巨大精品欧美一区| 91女厕偷拍女厕偷拍高清| 91精品国产麻豆国产自产在线| 欧美不卡视频一区| 成人欧美一区二区三区黑人麻豆 | 蜜臀国产一区二区三区在线播放| 国产精品一二三四五| 在线免费观看成人短视频| 欧美不卡一二三| 亚洲一区二区视频| 国产成人免费视频网站| 欧美日韩一区二区三区不卡| 久久青草欧美一区二区三区| 亚洲国产日韩一区二区| 成人一区在线观看| 精品少妇一区二区三区在线播放 | 91美女在线视频| 精品久久一区二区| 亚洲第一av色| 色屁屁一区二区| 久久久久久久久久久电影| 亚洲国产一区视频| 91在线你懂得| 国产视频一区二区在线| 日韩电影一区二区三区四区| 日本精品一区二区三区四区的功能| 久久夜色精品一区| 日本va欧美va欧美va精品| 在线免费不卡电影| 玉米视频成人免费看| 不卡免费追剧大全电视剧网站| 精品国产乱码久久久久久夜甘婷婷| 亚洲最大成人综合| 色综合久久99| 中文字幕在线一区| 成人性色生活片| 中文字幕精品三区| 国产成人av福利| 国产欧美精品一区| 国产精品中文欧美| 久久久久国色av免费看影院| 久久99国产精品久久99果冻传媒| 欧美日本韩国一区二区三区视频 | 亚洲一卡二卡三卡四卡无卡久久| 国产成人三级在线观看| 久久影院午夜片一区| 久久精品免费看| 欧美成人在线直播| 韩国成人在线视频| 久久久美女毛片| 国产98色在线|日韩| 国产婷婷一区二区| 成人毛片在线观看| 伊人色综合久久天天人手人婷| 91蜜桃传媒精品久久久一区二区| 亚洲视频一区在线| 欧美色窝79yyyycom| 五月天精品一区二区三区| 欧美精品乱码久久久久久| 亚洲成国产人片在线观看| 欧美精品第1页| 国产一区二区三区高清播放| 久久久久国产精品厨房| 99精品热视频| 日产精品久久久久久久性色 | 国产福利一区二区三区视频在线| 国产清纯白嫩初高生在线观看91| jlzzjlzz亚洲女人18| 亚洲一区在线电影| 欧美xingq一区二区| 岛国精品一区二区| 午夜欧美在线一二页| 精品国产3级a| 91国产成人在线| 免费成人结看片| 一区精品在线播放| 欧美视频一区二区三区| 久久爱www久久做| 亚洲视频一二三| 91精品国产综合久久久久久漫画| 国产乱码精品一区二区三区忘忧草| 亚洲欧洲一区二区在线播放| 5月丁香婷婷综合| 成人免费观看av| 免费在线成人网| 一区二区日韩av| 久久精品亚洲精品国产欧美kt∨| 色综合网色综合| 精品亚洲国内自在自线福利| 综合激情网...| 久久久美女毛片| 欧美精品色综合| 91麻豆123| 国产中文字幕精品| 亚洲午夜国产一区99re久久| 国产午夜亚洲精品不卡| 欧美一区日韩一区| 欧美中文字幕一区| 99国产精品视频免费观看| 精品一区二区三区免费毛片爱 | 久久久亚洲欧洲日产国码αv| 欧洲另类一二三四区| 成人免费看的视频| 日韩av一区二区在线影视| 亚洲最大成人网4388xx| 中文字幕一区av| 日本一区二区成人| 久久精品人人做人人综合| 日韩一区二区三区av| 欧美精品久久一区| 欧美理论在线播放| 欧美色图天堂网| 欧美在线短视频| 99国产精品国产精品毛片| 成人妖精视频yjsp地址| 国产精品一色哟哟哟| 精品一区二区三区久久| 国内欧美视频一区二区| 精品午夜久久福利影院| 久久99精品视频| 激情综合色丁香一区二区| 久久精品国产精品亚洲综合| 久久精品72免费观看| 久久草av在线| 国产成人超碰人人澡人人澡| 国产精品白丝jk白祙喷水网站| 黑人巨大精品欧美黑白配亚洲| 久久66热re国产| 国产精品1024| 99这里都是精品| 欧洲一区二区av| 91麻豆精品国产自产在线| 日韩欧美成人一区| 久久网站最新地址| 国产精品久久国产精麻豆99网站 | 欧美性色黄大片| 欧美嫩在线观看| 精品国产髙清在线看国产毛片| 欧美成人一区二区三区片免费| 欧美精品一区男女天堂| 中文一区在线播放| 一区二区三区中文字幕| 日韩成人一区二区三区在线观看| 蜜臂av日日欢夜夜爽一区| 国产在线视频精品一区| 97se狠狠狠综合亚洲狠狠| 在线一区二区三区四区| 日韩一区二区视频| 综合分类小说区另类春色亚洲小说欧美| 亚洲精品视频在线看| 喷水一区二区三区| 成人蜜臀av电影| 欧美日韩精品系列| 久久综合99re88久久爱| 亚洲欧美一区二区久久| 蜜桃视频在线一区| 99久久婷婷国产| 91精品麻豆日日躁夜夜躁| 日本一区二区高清| 日韩av电影免费观看高清完整版| 国产成人免费在线| 欧美区在线观看| 国产精品乱码久久久久久| 午夜精品福利久久久| aaa国产一区| 2020国产精品自拍| 一区二区在线观看av| 国产一区二区不卡在线| 欧美福利视频导航| 国产精品成人网|