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

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

?? md5_testdll.cpp

?? implement md5 into a d
?? CPP
字號:
// MD5_TestDll.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "MD5_TestDll.h"
#include "md5.h"

#define VERSION		"2.0 (2003-04-15)"
//#define FALSE	0
//#define TRUE	1
//#define EOS		'\0'

HMODULE g_hModule;
int md5_main( int argc, char * argv[], BYTE * pbyMD5Sig );
MD5_TESTDLL_API DWORD md5_file( char * szFilePath );

#ifdef _MANAGED
#pragma managed(push, off)
#endif

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	g_hModule = hModule;

	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
	case DLL_PROCESS_DETACH:
		break;
	}
    return TRUE;
}

#ifdef _MANAGED
#pragma managed(pop)
#endif

MD5_TESTDLL_API DWORD md5_file( char * szFilePath, BYTE * pbyMD5Sig, DWORD dwSize )
{
	int iRet, argc = 2;
	char * argv[2];
	DWORD dwRet;
	char szModPath[MAX_PATH];

	if ( dwSize < 16 )
	{
		return 5;
	}

	dwRet = GetModuleFileName( NULL/*g_hModule*/, szModPath, MAX_PATH );
	if ( dwRet == 0 )
	{
		return 6;
	}
	argv[0] = szModPath;
	argv[1] = szFilePath;

	iRet = md5_main( argc, argv, pbyMD5Sig );
	return iRet;
}

int md5_main( int argc, char * argv[], BYTE * pbyMD5Sig )
{
    int i, j, opt, cdata = FALSE, docheck = FALSE, showfile = TRUE, f = 0;
    unsigned int bp;
    char *cp, *clabel, *ifname, *hexfmt = "%02X";
    FILE *in = stdin, *out = stdout;
    unsigned char buffer[16384], signature[16], csig[16];
    struct MD5Context md5c;

    for (i = 1; i < argc; i++) 
	{
		cp = argv[i];
        if (*cp == '-') 
		{
			if (strlen(cp) == 1) 
			{
	    		i++;
	    		break;	    	      /* -  --  Mark end of options; balance are files */
			}
			opt = *(++cp);
			if (islower(opt)) 
			{
				opt = toupper(opt);
			}

			switch (opt) 
			{
			case 'C':             /* -Csignature  --  Check signature, set return code */
				docheck = TRUE;
				if (strlen(cp + 1) != 32) 
				{
					docheck = FALSE;
				}
				memset(csig, 0, 16);
				clabel = cp + 1;
				for (j = 0; j < 16; j++) 
				{
					if (isxdigit((int) clabel[0]) && isxdigit((int) clabel[1]) &&
                            sscanf((cp + 1 + (j * 2)), hexfmt, &bp) == 1) 
					{
						csig[j] = (unsigned char) bp;
					} 
					else 
					{
						docheck = FALSE;
						break;
					}
					clabel += 2;
				}
				if (!docheck) 
				{
					fprintf(stderr, "Error in signature specification.  Must be 32 hex digits.\n");
					return 2;
				}
				break;

			case 'D':             /* -Dtext  --  Compute signature of given text */
				MD5Init(&md5c);
				MD5Update(&md5c, (unsigned char *) (cp + 1), (unsigned int)strlen(cp + 1));
				cdata = TRUE;
				f++;	      /* Mark no infile argument needed */
				break;
		    
			case 'L':   	      /* -L  --  Use lower case letters as hex digits */
				hexfmt = "%02x";
				break;
		    
			case 'N':   	      /* -N  --  Don't show file name after sum */
				showfile = FALSE;
				break;
		    
			case 'O':   	      /* -Ofname  --  Write output to fname (- = stdout) */
				cp++;
				if (strcmp(cp, "-") != 0) 
				{
		    		if (out != stdout) 
					{
						fprintf(stderr, "Redundant output file specification.\n");
						return 2;
    	    	    }
                    if ((out = fopen(cp, "w")) == NULL) 
					{
						fprintf(stderr, "Cannot open output file %s\n", cp);
						return 2;
					}
				}
				break;

			case '?':             /* -U, -? -H  --  Print how to call information. */
			case 'H':
			case 'U':
				printf("\nMD5  --  Calculate MD5 signature of file.  Call");
				printf(
				   "\n             with md5 [ options ] [file ...]");
				printf("\n");
				printf("\n         Options:");
				printf("\n              -csig   Check against sig, set exit status 0 = OK");
				printf("\n              -dtext  Compute signature of text argument");
				printf("\n              -l      Use lower case letters for hexadecimal digits");
				printf("\n              -n      Do not show file name after sum");
				printf("\n              -ofname Write output to fname (- = stdout)");
				printf("\n              -u      Print this message");
				printf("\n              -v      Print version information");
				printf("\n");
				printf("\nby John Walker  --  http://www.fourmilab.ch/");
				printf("\nVersion %s\n", VERSION);
				printf("\nThis program is in the public domain.\n");
				printf("\n");
				return 0;
		    
			case 'V':   	      /* -V  --  Print version number */
				printf("%s\n", VERSION);
				return 0;
			
			}	// switch (opt) 
		}
		else	// if (*cp == '-') 
		{
			break;
		}
    }	// for (i = 1; i < argc; i++) 
    
    if (cdata && (i < argc)) 
	{
    	fprintf(stderr, "Cannot specify both -d option and input file.\n");
		return 2;
    }
    
    if ((i >= argc) && (f == 0)) 
	{
    	f++;
    }
    
    for (; (f > 0) || (i < argc); i++) 
	{
    	if ((!cdata) && (f > 0)) 
		{
			ifname = "-";
		}
		else 
		{
    	    ifname = argv[i];
		}
		f = 0;

		if (!cdata) 
		{
	
	    /* If the data weren't supplied on the command line with
	       the "-d" option, read it now from the input file. */
	
			if (strcmp(ifname, "-") != 0) 
			{
				if ((in = fopen(ifname, "rb")) == NULL) 
				{
	    			fprintf(stderr, "Cannot open input file %s\n", ifname);
					return 2;
				}
			} 
			else 
			{
				in = stdin;
			}

#ifdef _WIN32

	    /** Warning!  On systems which distinguish text mode and
		binary I/O (MS-DOS, Macintosh, etc.) the modes in the open
        	statement for "in" should have forced the input file into
        	binary mode.  But what if we're reading from standard
		input?  Well, then we need to do a system-specific tweak
        	to make sure it's in binary mode.  While we're at it,
        	let's set the mode to binary regardless of however fopen
		set it.

		The following code, conditional on _WIN32, sets binary
		mode using the method prescribed by Microsoft Visual C 7.0
        	("Monkey C"); this may require modification if you're
		using a different compiler or release of Monkey C.	If
        	you're porting this code to a different system which
        	distinguishes text and binary files, you'll need to add
		the equivalent call for that system. */

			_setmode(_fileno(in), _O_BINARY);
#endif
    
    		MD5Init(&md5c);
			while ((j = (int) fread(buffer, 1, sizeof buffer, in)) > 0) 
			{
				MD5Update(&md5c, buffer, (unsigned) j);
			}
		}
		MD5Final(signature, &md5c);

		if (docheck) 
		{
			docheck = 0;
			for (j = 0; j < sizeof signature; j++) 
			{
				if (signature[j] != csig[j]) 
				{
					docheck = 1;
					break;
				}
			}
			if (i < (argc - 1)) 
			{
	    		fprintf(stderr, "Only one file may be tested with the -c option.\n");
				return 2;
			}
		} 
		else 
		{
			memcpy( pbyMD5Sig, signature, 16 );
			//for (j = 0; j < sizeof signature; j++) 
			//{
			//	fprintf(out, hexfmt, signature[j]);
			//}
			//if ((!cdata) && showfile) 
			//{
			//	fprintf(out, "  %s", (in == stdin) ? "-" : ifname);
			//}
            //fprintf(out, "\n");
		}

    }	// for (; (f > 0) || (i < argc); i++) 

    return docheck;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区老鸭窝| 国产mv日韩mv欧美| 一区二区三区四区不卡在线 | 免费不卡在线观看| 日本欧美韩国一区三区| 天天综合网 天天综合色| 亚洲午夜精品在线| 日本成人在线一区| 激情综合色播五月| 成人av电影在线网| 91丨porny丨在线| 91在线高清观看| 色8久久人人97超碰香蕉987| 欧美亚洲一区二区在线观看| 6080亚洲精品一区二区| 欧美不卡在线视频| 国产精品麻豆欧美日韩ww| 国产精品成人免费精品自在线观看| 国产精品久久三区| 亚洲一区二区成人在线观看| 午夜伊人狠狠久久| 国产乱对白刺激视频不卡| 激情综合一区二区三区| 福利电影一区二区| 欧美在线不卡一区| 久久亚洲一区二区三区四区| 国产精品欧美综合在线| 一区二区三区高清| 久久国产精品99精品国产| 成年人午夜久久久| 91麻豆精品国产自产在线 | 国产情人综合久久777777| 亚洲欧美日韩系列| 美女视频一区二区三区| zzijzzij亚洲日本少妇熟睡| 欧美三级视频在线播放| 国产亚洲视频系列| 亚洲午夜电影在线| 成人一区在线观看| 91精品在线麻豆| 1000部国产精品成人观看| 日韩成人精品在线| 色播五月激情综合网| 久久精品视频网| 日韩国产欧美在线视频| 成人免费高清在线| 91精品国产一区二区人妖| 日韩美女啊v在线免费观看| 另类调教123区| 欧美午夜精品一区| 亚洲人成网站影音先锋播放| 国产精品综合一区二区| 日韩欧美一区二区不卡| 亚洲图片欧美色图| 99精品视频在线观看免费| 中文字幕一区二区三区蜜月 | 亚洲不卡一区二区三区| 成人aa视频在线观看| 欧美成人精品高清在线播放| 亚洲国产精品嫩草影院| 色综合婷婷久久| 国产精品久久久久影院老司| 精品在线一区二区| 日韩女优av电影| 天天av天天翘天天综合网| 色美美综合视频| 亚洲色图欧美偷拍| 一本一道综合狠狠老| 国产精品午夜电影| 不卡一区在线观看| 国产精品美女久久久久久久久久久| 精品影院一区二区久久久| 日韩一区二区三区四区| 日韩制服丝袜先锋影音| 91精品国产免费| av高清不卡在线| 中文字幕一区二区三区蜜月| www.日韩在线| 亚洲伦在线观看| 欧美中文字幕久久| 亚洲电影视频在线| 欧美一区二区三区小说| 久久av资源网| 国产日韩精品一区二区三区| 9i在线看片成人免费| 亚洲免费在线视频| 欧美人与z0zoxxxx视频| 美腿丝袜在线亚洲一区| 日韩欧美一区中文| 国产在线播精品第三| 国产精品免费av| 欧美性生活大片视频| 蜜桃一区二区三区在线观看| 久久久久久99久久久精品网站| 国产电影精品久久禁18| 综合在线观看色| 欧美性色aⅴ视频一区日韩精品| 婷婷六月综合网| 久久综合久久综合九色| 99久久精品国产导航| 午夜亚洲国产au精品一区二区| 日韩一区二区三区三四区视频在线观看| 麻豆精品国产91久久久久久 | jvid福利写真一区二区三区| 亚洲老妇xxxxxx| 欧美一区二区观看视频| 欧美午夜电影网| 精油按摩中文字幕久久| 综合中文字幕亚洲| 欧美大片日本大片免费观看| 懂色av中文一区二区三区| 一区二区三区蜜桃| 精品少妇一区二区三区视频免付费 | 成人黄动漫网站免费app| 亚洲国产中文字幕在线视频综合| 精品国产伦一区二区三区观看方式 | va亚洲va日韩不卡在线观看| 天天综合色天天综合| 国产精品美女久久久久aⅴ | 日韩国产在线一| 中文字幕中文字幕在线一区| 制服丝袜中文字幕亚洲| 成人av网在线| 国产精一品亚洲二区在线视频| 香港成人在线视频| 亚洲少妇最新在线视频| 久久午夜色播影院免费高清 | 久久综合久久99| 欧美三级电影在线观看| av激情综合网| 国产成人免费在线观看不卡| 蜜臀av性久久久久蜜臀aⅴ流畅| 一区二区三区国产豹纹内裤在线 | 亚洲一区二区三区四区在线观看 | 韩国成人福利片在线播放| 一区二区三区成人在线视频| 日韩一区中文字幕| 国产精品美女一区二区| 国产肉丝袜一区二区| 精品女同一区二区| 777午夜精品免费视频| 欧美日韩成人综合在线一区二区| 91亚洲男人天堂| voyeur盗摄精品| 99精品视频中文字幕| av电影在线观看完整版一区二区| 韩日av一区二区| 久久国产精品72免费观看| 久久国产剧场电影| 久草在线在线精品观看| 国产在线播放一区二区三区| 久久aⅴ国产欧美74aaa| 麻豆久久久久久久| 国内久久婷婷综合| 国产成人av影院| 成人午夜精品在线| 不卡的av在线| 97se亚洲国产综合自在线不卡| 99久久精品费精品国产一区二区| 94色蜜桃网一区二区三区| 91成人在线免费观看| 欧美日韩国产美女| 91麻豆精品国产91久久久使用方法 | 99久久久无码国产精品| 国产成人亚洲综合色影视| 国产高清亚洲一区| 成人激情小说乱人伦| 色88888久久久久久影院野外| 欧美日韩在线三级| 欧美成人r级一区二区三区| 久久精品亚洲精品国产欧美kt∨| 国产日韩v精品一区二区| 综合欧美一区二区三区| 日韩国产欧美一区二区三区| 精东粉嫩av免费一区二区三区| 久久精品理论片| 国产精品一二三| 日本韩国视频一区二区| 91精品欧美久久久久久动漫| 久久精品夜夜夜夜久久| 亚洲女性喷水在线观看一区| 喷白浆一区二区| 成人小视频在线观看| 欧美日韩一级黄| 久久精品亚洲一区二区三区浴池| 亚洲欧洲国产日韩| 五月天亚洲精品| 国产精品影视网| 欧美三区在线观看| 国产人成亚洲第一网站在线播放| 夜夜亚洲天天久久| 国产一区二区在线观看视频| 91猫先生在线| 久久网这里都是精品| 亚洲va欧美va人人爽| a美女胸又www黄视频久久| 欧美一区国产二区| 一区二区三区在线不卡| 国产一区欧美日韩| 91精品国产综合久久久久|