C/C++计算MD5值 - Boost MD5
Boost MD5
Boost实现了一个md5的哈希校验算法,用于对文件指纹进行校对,只需要包含头文件即可使用。 boost/uuid/detail/md5.hpp
实例
#include <stdio.h> #include <string.h> #include "boost/uuid/detail/md5.hpp" #include <boost/algorithm/hex.hpp> int main () { boost::uuids::detail::md5 md5; boost::uuids::detail::md5::digest_type digest; int len; char result[33] = { 0}; unsigned char buffer[1024]; FILE* file = fopen("/opt/test.tar.gz","rb"); if(file == NULL) return -1; while ((len = static_cast<int>(fread(buffer, 1, 1024, file))) != 0) { md5.process_bytes(buffer,len); } fclose(file); md5.get_digest(digest); const auto charDigest = reinterpret_cast<const char *>(&digest); boost::algorithm::hex(charDigest, charDigest + sizeof(boost::uuids::detail::md5::digest_type), result); printf("%s ",result); return 0; }
总结
Boost功能丰富,但又过于庞大,如果项目中未使用到boost,不建议引入该方式。