📄 md5driver.cpp
字号:
/*
* md5driver.cpp
*
* test driver for MD5
*/
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include "md5.h"
void MDPrint(BYTE digest[16])
{
UINT4 i;
for (i = 0; i < 16; i++)
{
printf("%02x", digest[i]);
}
}
void MDString(const char* str, BYTE digest[16])
{
MD5_CTX context;
UINT4 len = strlen(str);
MD5Init(&context);
MD5Update(&context, (BYTE*)str, len);
MD5Final(digest, &context);
}
void MDString(const char* str)
{
MD5_CTX context;
BYTE digest[16];
UINT4 len = strlen(str);
MD5Init(&context);
MD5Update(&context, (BYTE*)str, len);
MD5Final(digest, &context);
printf("MD5(\"%s\")=", str);
MDPrint(digest);
printf("\n");
}
void MDFile(FILE* file, BYTE digest[16])
{
MD5_CTX context;
int len;
const int SIZE = 1024;
BYTE buffer[SIZE];
MD5Init(&context);
while ( len = fread(buffer, 1, SIZE, file)) {
MD5Update(&context, buffer, len);
}
MD5Final(digest, &context);
fclose(file);
}
void MDFile(const char* filename)
{
FILE* file;
MD5_CTX context;
int len;
const int SIZE = 1024;
BYTE buffer[SIZE];
BYTE digest[16];
if ((file = fopen(filename, "rb")) == NULL) {
printf("%s can't be opened.\n", filename);
return;
}
MD5Init(&context);
while ( len = fread(buffer, 1, SIZE, file)) {
MD5Update(&context, buffer, len);
}
MD5Final(digest, &context);
fclose(file);
printf("MD5(\"%s\")=", filename);
MDPrint(digest);
printf("\n");
}
void TestSuite()
{
MDString("");
MDString("a");
MDString("abc");
MDString("message digest");
MDString("abcdefghijklmnopqrstuvwxyz");
MDString("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
MDString("12345678901234567890123456789012345678901234567890123456789012345678901234567890");
}
void TestFile()
{
MDFile("test.txt");
}
void TestMD5()
{
TestSuite();
TestFile();
}
void main()
{
TestMD5();
int END;
cin >> END;
}
/*
MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
MD5 ("message digest") = f96b697d7cb7938d525a2f31aaf161d0
MD5 ("abcdefghijklmnopqrstuvwxyz") = c3fcd3d76192e4007dfb496cca67e13b
MD5 ("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")
= d174ab98d277d9f5a5611c2c9f419d9f
MD5 ("12345678901234567890123456789012345678901234567890123456789012345678901234567890")
= 57edf4a22be3c955ac49da2e2107b67a
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -