再次收藏一个C++ MD5类下载,自测好用哦亲
作者:admin 发布于:2012-8-9 11:01 Thursday 分类:Windows
注意:验证文件md5时要以二进制形式打开:md5.update(ifstream("D:\\a.bin"), ios::binary);
附件有完整代码
test.cpp
#include "md5.h" #include <iostream> using namespace std; void PrintMD5(const string& str, MD5& md5) { cout << "MD5(\"" << str << "\") = " << md5.toString() << endl; } string FileDigest(const string& file) { ifstream in(file.c_str(), ios::binary); if (!in) { return ""; } MD5 md5; std::streamsize length; char buffer[1024]; while (!in.eof()) { in.read(buffer, 1024); length = in.gcount(); if (length > 0) { md5.update(buffer, length); } } in.close(); return md5.toString(); } int main() { //cout << MD5("abc").toString() << endl; //cout << MD5(ifstream("D:\\test.txt")).toString() << endl; //cout << MD5(ifstream("D:\\test.exe", ios::binary)).toString() << endl; //cout << FileDigest("D:\\test.exe") << endl; MD5 md5; md5.update(""); PrintMD5("", md5); md5.update("a"); PrintMD5("a", md5); md5.update("bc"); PrintMD5("abc", md5); md5.update("defghijklmnopqrstuvwxyz"); PrintMD5("abcdefghijklmnopqrstuvwxyz", md5); md5.reset(); md5.update("message digest"); PrintMD5("message digest", md5); //md5.reset(); //md5.update(ifstream("D:\\test.txt")); //PrintMD5("D:\\test.txt", md5); return 0; }
附件下载:
md5.rar 4.06KB