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,不建议引入该方式。
