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

📄 md4main.c

📁 p2p类源代码 kadc协议官方源代码
💻 C
字号:
#include <MD4.h>#include <stdio.h>#include <string.h>/* from RFC1320:A.5 Test suite   The MD4 test suite (driver option "-x") should print the following   results:MD4 test suite:MD4 ("") = 31d6cfe0d16ae931b73c59d7e0c089c0MD4 ("a") = bde52cb31de33e46245e05fbdbd6fb24MD4 ("abc") = a448017aaf21d8525fc10ae87aa6729dMD4 ("message digest") = d9130a8164549fe818874806e1c7014bMD4 ("abcdefghijklmnopqrstuvwxyz") = d79e1c308aa5bbcdeea8ed63df412da9MD4 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") =043f8582f241db351ce627e153e7f0e4MD4 ("123456789012345678901234567890123456789012345678901234567890\12345678901234567890") = e33b4ddc9c38f2199c3e7b164fcc0536*/static char *test[] = {"","a","abc","message digest","abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789","123456789012345678901234567890123456789012345678901234567890"\"12345678901234567890",NULL};#include <int128.h>int main(int ac, char *av[]) {	unsigned char digest[16], digest1[16];	int i;	unsigned char flip_data[16];    int128 flip = flip_data;	for(i=0; i<16; i++)		flip[i] = 0;	flip[0] = 0x55;	for(i=0; (test[i]) != NULL; i++) {		int j;		MD4(digest, (unsigned char *)test[i], strlen(test[i]));		printf("MD4 (\"%s\") = ", test[i]);		for(j=0; j<16; j++)			printf("%02x", digest[j]);		printf("\n");	}	printf("last digest most significant byte (bits 0-7):\n");	for(i=0; i<8; i++)		printf("%d", int128_bitnum((int128)digest, 0+i) );	int128xor(digest1, digest, flip);	printf(" and after xoring with 0x55: ");	for(i=0; i<8; i++)		printf("%d", int128_bitnum((int128)digest1, 0+i) );	printf("\n");	printf("XOR dist between old and new digest: %d\n",			int128xorlog(digest, digest1));	for(;;) {		int j;		char line[80];		char *l;		printf("Enter string: "); fflush(stdout);		l = fgets(line, sizeof(line)-1, stdin);		if(l == NULL)			break;		if((l = strrchr(line, '\n')) != NULL) *l = 0;		if((l = strrchr(line, '\r')) != NULL) *l = 0;		MD4(digest, (unsigned char *)line, strlen(line));		printf("MD4 (\"%s\") = ", line);		for(j=0; j<16; j++)			printf("%02x", digest[j]);		printf("\n");	}	return 0;}

⌨️ 快捷键说明

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