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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? test.c

?? has160哈希函數(shù)。用散列的方法將明文處理達(dá)到加密的效果。
?? C
字號:
/***************************************************************************
* Copyright (c) 2000-2004, Future Systems, Inc. / Seoul, Republic of Korea *
* All Rights Reserved.                                                     *
*                                                                          *
* This document contains proprietary and confidential information.  No     *
* parts of this document or the computer program it embodies may be in     *
* any way copied, duplicated, reproduced, translated into a different      *
* programming language, or distributed to any person, company, or          *
* corporation without the prior written consent of Future Systems, Inc.    *
*                              Hyo Sun Hwang                               *
*                372-2 YangJae B/D 6th Floor, Seoul, Korea                 *
*                           +82-2-578-0581 (552)                           *
***************************************************************************/

/*--------------------- [ Version/Command in detais] ---------------------*\
Description : filename.? (CrypLib version 1.00)
			(head file)	(C-source file)

C0000 : Created by Hyo Sun Hwang (hyosun@future.co.kr) 2000/12/31

C0001 : Modified by Hyo Sun Hwang (hyosun@future.co.kr) 2001/01/01

\*------------------------------------------------------------------------*/

/*************** Header files *********************************************/
#include <stdio.h>
#include <time.h>
#include "has160.h"

/*************** Assertions ***********************************************/

/*************** Definitions / Macros  ************************************/
#define KILO	1024
#define MEGA	(KILO*KILO)

////	Prine out BYTE data in ascending order and with no '0x'(hexa type)
#undef PrintBYTE
#define PrintBYTE(pfile, msg, Data, DataLen) {			\
	int idx;											\
	fprintf(pfile, "%5s =", msg);						\
	for( idx=0; idx<(int)DataLen; idx++) {				\
		if( (idx==0) || ((idx%16)!=0) )					\
			fprintf(pfile, " %.2x", Data[idx]);			\
		else											\
			fprintf(pfile, "\n\t%.2x", Data[idx]);		\
	}													\
	fprintf(pfile, "\n");								\
}

////	茄鍋俊 'ByteLen'-bytes狼 單撈鷗甫 貿(mào)府竅綽 楷魂 'Oper'闌
////	'Iter'鍋 薦青竅絆, 弊 搬苞甫 KByte/sec竄困肺 免仿竊.
#define SPEED_TEST(str1, str2, Iter, ByteLen, Oper) {	\
	unsigned idx;										\
	clock_t start, finish;								\
	double Sec, Mbps=0.0;								\
	start = clock();									\
	for( idx=0; idx<Iter; idx++)						\
		{	Oper;	}									\
	finish = clock();									\
	Sec = (double)(finish-start) / CLOCKS_PER_SEC;		\
	if( Sec!=0 )	Mbps = 8.0*ByteLen*idx/Sec/MEGA;	\
	printf("%s%7.3fMbps(=%d*", str1, Mbps, Iter);		\
	printf("%d", ByteLen);								\
	printf("/%3.0f)%s", 1000.0*Sec, str2);				\
}

/*************** New Data Types *******************************************/

/*************** Constant (Error Code) ************************************/
#define CTR_USAGE_ERROR		0x2001

/*************** Global Variables *****************************************/
char	Help[] = "\
Usage1 : -[T/S]   (Test Value/Test Speed)\n\
Usage2 : -[H] infile\n";

/*************** Prototypes ***********************************************/

//########################################################//
//######		Error Code 包府 竊薦				######//
//########################################################//

/*************************************************************************/
typedef struct{
	DWORD		ErrorCode;
	BYTE		Message[32];
} ERROR_MESSAGE;

ERROR_MESSAGE	ErrorMessage[] = {
	{CTR_USAGE_ERROR,		"CTR_USAGE_ERROR"},
	{0, ""},
};

/**************************************************************************
*
*/
void	Error(
		DWORD	ErrorCode,
		char	*Message)
{
	DWORD	i;

	for( i=0; ErrorMessage[i].ErrorCode!=0; i++)
		if( ErrorMessage[i].ErrorCode==ErrorCode )	break;

	printf("ERROR(%s) :::: %s\n", ErrorMessage[i].Message, Message);
	if( ErrorCode==CTR_USAGE_ERROR )	printf("\n%s", Help);
	exit(1);
}

//########################################################//
//######		Validity Test 包訪 竊薦				######//
//########################################################//

/*************************************************************************/
typedef struct{
	DWORD	MsgLen;
	BYTE	Messge[120];
	BYTE	DigestValue[HAS160_DIGEST_VALUELEN];
} TEST_STRUCT;

TEST_STRUCT		TestData[] = {
	////	HAS160
	{	 0, "",
		{0x30,0x79,0x64,0xEF,0x34,0x15,0x1D,0x37,0xC8,0x04,0x7A,0xDE,0xC7,0xAB,0x50,0xF4,0xFF,0x89,0x76,0x2D}	},
	{	 1, "a",
		{0x48,0x72,0xBC,0xBC,0x4C,0xD0,0xF0,0xA9,0xDC,0x7C,0x2F,0x70,0x45,0xE5,0xB4,0x3B,0x6C,0x83,0x0D,0xB8}	},
	{	 3, "abc",
		{0x97,0x5E,0x81,0x04,0x88,0xCF,0x2A,0x3D,0x49,0x83,0x84,0x78,0x12,0x4A,0xFC,0xE4,0xB1,0xC7,0x88,0x04}	},
	{	14, "message digest",
		{0x23,0x38,0xDB,0xC8,0x63,0x8D,0x31,0x22,0x5F,0x73,0x08,0x62,0x46,0xBA,0x52,0x9F,0x96,0x71,0x0B,0xC6}	},
	{	26, "abcdefghijklmnopqrstuvwxyz",
		{0x59,0x61,0x85,0xC9,0xAB,0x67,0x03,0xD0,0xD0,0xDB,0xB9,0x87,0x02,0xBC,0x0F,0x57,0x29,0xCD,0x1D,0x3C}	},
	{	62, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
		{0xCB,0x5D,0x7E,0xFB,0xCA,0x2F,0x02,0xE0,0xFB,0x71,0x67,0xCA,0xBB,0x12,0x3A,0xF5,0x79,0x57,0x64,0xE5}	},
	{	80, "12345678901234567890123456789012345678901234567890123456789012345678901234567890",
		{0x07,0xF0,0x5C,0x8C,0x07,0x73,0xC5,0x5C,0xA3,0xA5,0xA6,0x95,0xCE,0x6A,0xCA,0x4C,0x43,0x89,0x11,0xB5}	},
	{	1000000, "a",
		{0xD6,0xAD,0x6F,0x06,0x08,0xB8,0x78,0xDA,0x9B,0x87,0x99,0x9C,0x25,0x25,0xCC,0x84,0xF4,0xC9,0xF1,0x8D}	},
	{	(DWORD)-1},
};

/**************************************************************************
*
*/
void	ValidityTest()
{
	BYTE	DigestValue[HAS160_DIGEST_VALUELEN];
	DWORD	i, tt;
	HAS160_ALG_INFO	AlgInfo;

	//
	for( i=0; TestData[i].MsgLen!=(DWORD)-1; i++) {
		//
		if( TestData[i].MsgLen!=1000000 ) {
			HAS160_Init(&AlgInfo);
			HAS160_Update(&AlgInfo, TestData[i].Messge, TestData[i].MsgLen);
			HAS160_Final(&AlgInfo, DigestValue);

			//
			fprintf(stdout, "\n==== test %d\n", i);
			PrintBYTE(stdout, "Msg", TestData[i].Messge, TestData[i].MsgLen);
			PrintBYTE(stdout, "DV", DigestValue, HAS160_DIGEST_VALUELEN);
		}
		else {
			HAS160_Init(&AlgInfo);
			for( tt=0; tt<1000000; tt++)
				HAS160_Update(&AlgInfo, TestData[i].Messge, 1);
			HAS160_Final(&AlgInfo, DigestValue);

			//
			fprintf(stdout, "\n==== test %d : 1000000-times 'a'\n", i);
			PrintBYTE(stdout, "DV", DigestValue, HAS160_DIGEST_VALUELEN);
		}
	}
}

/**************************************************************************
*
*/
void	SpeedTest()
{
#define DATA_LEN	1024
	BYTE	Data[DATA_LEN];
	BYTE	DigestValue[HAS160_DIGEST_VALUELEN];
	DWORD	i, tt, Iter;
	HAS160_ALG_INFO	AlgInfo;

	//
	for( tt=0; tt<DATA_LEN; tt++)	Data[tt] = rand() >> 3;

	//
	for( i=0; i<3; i++) {
		fprintf(stdout, "==== test %d : ", i);
		Iter = 2 * 42500;

		//
		SPEED_TEST("HAS160(1Kbyte data) : ", "\n", Iter, DATA_LEN,
			{	HAS160_Init(&AlgInfo);
				HAS160_Update(&AlgInfo, Data, DATA_LEN);
				HAS160_Final(&AlgInfo, DigestValue);		}	);
	}
#undef DATA_LEN
}

/**************************************************************************
*
*/
void	GeneralTest(
		char	*infile)
{
	FILE	*pIn;
	BYTE	DigestValue[HAS160_DIGEST_VALUELEN];
	BYTE	SrcData[1024+32];
	DWORD	SrcLen;
	HAS160_ALG_INFO	AlgInfo;

	//
	if( (pIn=fopen(infile, "rb"))==NULL ) {
		printf( "The file '%s' was not opened\n", infile);
		Error(0, "File(infile) Open Error");
	}

	//
	HAS160_Init(&AlgInfo);

	for(  ;  ;  ) {
		SrcLen = fread(SrcData, sizeof(BYTE), 1024, pIn);
		if( SrcLen==0 )	break;

		HAS160_Update(&AlgInfo, SrcData, SrcLen);
	}

	HAS160_Final(&AlgInfo, DigestValue);
	PrintBYTE(stdout, "DV", DigestValue, HAS160_DIGEST_VALUELEN);

	//
	fclose(pIn);
}

/**************************************************************************
*
*/
void	ChangeToCapital(char *String)
{
	DWORD	i;

	if( String[0]=='-' ) {
		for( i=1;  ; i++) {
			if( String[i]=='\0' )	break;
			if( (String[i]>='a') && (String[i]<='z') )
				String[i] += 'A' - 'a';
		}
	}
}

/**************************************************************************
*
*/
void	main(int argc, char **argv)
{
	DWORD	i;

	//
	for( i=1; i<(DWORD)argc; i++)
		ChangeToCapital(argv[i]);

	//
	if( argc==2 ) {
		if( strcmp(argv[1], "-T")==0 )		ValidityTest();
		else if( strcmp(argv[1], "-S")==0 )	SpeedTest();
		else	Error(CTR_USAGE_ERROR, "Invalid Use of Argument");
	}
	else if( argc==3 ) {
		DWORD	EncType=0, ModeType=0, PadType=0;

		//
		if( strcmp(argv[1], "-H")==0 );
		else	Error(CTR_USAGE_ERROR, "Invalid Use of Argument");

		GeneralTest(argv[2]);
	}
	else
		Error(CTR_USAGE_ERROR, "Invalid Number of Argument");
}

/*************** END OF FILE **********************************************/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美国三级日本三级久久99| 国产亚洲人成网站| 一区二区三区免费看视频| 国产一区在线不卡| 久久精品一区蜜桃臀影院| 国产乱码精品1区2区3区| 久久理论电影网| 成人午夜在线播放| 中文字幕一区二区三区四区| 色网综合在线观看| 调教+趴+乳夹+国产+精品| 欧美一区二区美女| 国产精品亚洲а∨天堂免在线| 亚洲国产精品高清| 精品国产一区久久| 国产精品一区二区男女羞羞无遮挡| 亚洲国产精品国自产拍av| 色综合久久综合中文综合网| 亚洲福利视频一区| 精品三级在线观看| 91在线精品一区二区| 香蕉乱码成人久久天堂爱免费| 日韩免费观看2025年上映的电影 | 国产精品一区二区三区乱码| 中文欧美字幕免费| 欧美精品一卡两卡| 国产精品一区二区无线| 亚洲一级二级三级在线免费观看| 欧美一区二区久久| 色综合欧美在线视频区| 麻豆成人久久精品二区三区小说| 中文字幕 久热精品 视频在线 | 视频一区二区三区在线| 久久久精品黄色| 欧美亚洲免费在线一区| 狠狠网亚洲精品| 亚洲国产成人91porn| 欧美韩国日本综合| 欧美一级二级在线观看| 色综合久久综合网| 国产精品一区二区x88av| 亚洲国产日韩一级| 国产精品国产三级国产aⅴ无密码| 欧美久久婷婷综合色| 成人激情视频网站| 极品少妇一区二区三区精品视频 | 在线播放/欧美激情| 成人h版在线观看| 美女精品一区二区| 一区二区视频在线看| 国产亚洲精品aa| 日韩精品一区二区在线观看| 欧美在线啊v一区| 99视频精品全部免费在线| 激情图片小说一区| 婷婷综合五月天| 亚洲精品国产第一综合99久久| 国产三级一区二区| 欧美精品一区男女天堂| 欧美精品久久99久久在免费线| 99久久婷婷国产综合精品| 成人在线视频首页| 国产成人午夜精品影院观看视频 | 欧美三电影在线| 97久久人人超碰| 高清国产一区二区| 国产乱码精品一区二区三区av | 欧美高清在线一区二区| 精品对白一区国产伦| 欧美一区二区精品| 67194成人在线观看| 欧美久久久久久久久中文字幕| 色婷婷久久久综合中文字幕| 99热这里都是精品| 91丨九色porny丨蝌蚪| 成人av资源网站| caoporn国产精品| 97精品电影院| 色天使色偷偷av一区二区| 99国产精品久久久久| 91香蕉视频污在线| 91色porny蝌蚪| 色综合天天天天做夜夜夜夜做| av亚洲产国偷v产偷v自拍| 成人激情校园春色| 色综合久久久久| 欧美四级电影在线观看| 欧美视频你懂的| 91精品欧美福利在线观看| 欧美一区二区三区免费在线看| 91精品国产一区二区三区蜜臀 | 国产精品 日产精品 欧美精品| 国产精品911| 99精品视频在线免费观看| 色女孩综合影院| 宅男噜噜噜66一区二区66| 欧美岛国在线观看| 国产精品嫩草影院com| 国产精品毛片久久久久久久| 亚洲三级小视频| 亚洲一区二区三区四区中文字幕| 天使萌一区二区三区免费观看| 久久精品国产亚洲高清剧情介绍| 国产成人午夜视频| 欧美亚洲动漫制服丝袜| 欧美一级久久久久久久大片| 久久久久久久综合日本| 亚洲伦理在线免费看| 青娱乐精品在线视频| 国产91精品在线观看| 一本大道综合伊人精品热热| 宅男在线国产精品| 国产精品三级在线观看| 亚洲成人一区在线| 国产一区二区三区四区在线观看 | 欧美色偷偷大香| 精品国精品国产尤物美女| 中文字幕在线观看不卡| 天天综合天天做天天综合| 国产大陆a不卡| 欧美片网站yy| 国产精品美女久久久久久2018| 亚洲成人av一区二区| 国产精品一区二区在线看| 欧美亚洲综合网| 久久精品欧美日韩精品| 午夜精品福利一区二区蜜股av| 国产成人精品亚洲日本在线桃色| 欧美日韩国产一二三| 国产三区在线成人av| 天天综合网天天综合色| 99免费精品在线观看| 日韩三级伦理片妻子的秘密按摩| 亚洲日本乱码在线观看| 国内欧美视频一区二区| 欧美日韩成人一区| 自拍偷自拍亚洲精品播放| 久久精品国产秦先生| 精品视频一区二区三区免费| 国产欧美精品区一区二区三区| 日本欧美肥老太交大片| 91热门视频在线观看| 国产三级欧美三级| 久久国内精品自在自线400部| 欧洲精品一区二区三区在线观看| 国产性做久久久久久| 久久福利资源站| 91.麻豆视频| 亚洲福中文字幕伊人影院| 色综合久久综合网97色综合| 欧美国产日韩a欧美在线观看| 老司机一区二区| 日韩一区二区三区视频| 天天影视网天天综合色在线播放| 在线观看av不卡| 夜夜操天天操亚洲| 91视频国产资源| 亚洲欧洲日韩在线| 丁香啪啪综合成人亚洲小说| 精品国产免费人成电影在线观看四季| 日精品一区二区| 91超碰这里只有精品国产| 亚洲成人免费观看| 欧美视频一区二区| 亚洲成人一区在线| 欧美日韩中文另类| 五月天网站亚洲| 7777精品伊人久久久大香线蕉完整版 | 欧美国产精品一区二区| 国产精品中文字幕一区二区三区| 精品理论电影在线观看| 极品少妇一区二区三区精品视频| 91精品啪在线观看国产60岁| 欧美a级理论片| 精品理论电影在线| 国产一区高清在线| 国产精品久久午夜| 91在线一区二区| 亚洲欧美二区三区| 欧美在线观看禁18| 日本成人在线不卡视频| 日韩精品自拍偷拍| 国产精品2024| 亚洲日本在线看| 欧美巨大另类极品videosbest | 久久久久久9999| 国产91丝袜在线播放0| 国产精品久久久久久久久晋中 | 国产精品一区免费在线观看| 国产精品美女一区二区在线观看| 色综合一个色综合| 亚洲成人动漫精品| 欧美xxxxx裸体时装秀| 国产xxx精品视频大全| 综合久久国产九一剧情麻豆| 欧美人妖巨大在线| 国产成人精品免费在线| 一区二区日韩电影| 日韩欧美中文字幕精品| 国产99久久久精品|