MD5算法的C实现源代码
这份源代码来源于RFC1321文档 – The MD5 Message-Digest Algorithm的附录,应该是最官方的源代码了吧,可用于C、C++,可用于内核驱动。
一份测试代码:
/* test.c - MD5算法测试 */ #include#include #include "md5.h" /* 打印出16进制MD5 */ void MD5Print(unsigned char digest[16]) { unsigned int i; for (i = 0; i < 16; i++) printf("%02x", digest[i]); } /* 计算字符串的MD5 */ void MD5String(char *string) { MD5_CONTEXT context; unsigned char digest[16]; MD5Init(&context); MD5Update(&context, (unsigned char*)string, strlen(string)); MD5Final(digest, &context); MD5Print(digest); printf("\n"); } /* 计算文件的MD5 */ void MD5File(char *filename) { FILE *file; MD5_CONTEXT context; int len; unsigned char buffer[1024], digest[16]; if ((file = fopen(filename, "rb")) == NULL) printf("%s can't be opened\n", filename); else { MD5Init(&context); while (len = fread(buffer, 1, 1024, file)) MD5Update(&context, buffer, len); MD5Final(digest, &context); fclose(file); MD5Print(digest); printf("\n"); } } int main(int argc, char *argv[]) { MD5String("StarsunYzL"); MD5File("C:\\Windows\\Notepad.exe"); return 0; }
Download:
http://www.brsbox.com/filebox/down/fc/849c3af9c6bd36f6f796e73201862991
发表评论
| Trackback
