我需要计算一个文件的md5,但出于某种原因,我不想将我的项目与OpenSSL库链接。对我来说,最好的解决方案之一是通过boost库来实现。我找到了下一个示例:
#include <boost/md5.hpp>
#include <iostream>
#include <fstream>
std::cout << boost::md5("message").hex_str_value();
boost::md5(std::ifstream("file.txt")).hex_str_value();
字符串
但不幸的是,在当前的boost版本(1.68.0/1.69.0)中没有boost/md5.hpp
头。
有人能告诉我如何使用当前的boost版本1.69.0实现下面的示例吗?
我希望这篇文章能帮助每一个像我一样搜索它的人。
3条答案
按热度按时间q3aa05251#
boost 1.71之后boost/uuid/detail/md5.hpp不能正确计算md5,详情可以参考https://github.com/boostorg/uuid/issues/111,所以boost现在没有md5了.
paste what links sa:
UUID不提供MD5生成的公共组件。您使用的是名称生成器的实现细节,它不必像其他工具那样给予兼容的MD5。
iecba09b2#
请确保使用boost 1.66.0或更高版本来使用此功能。Marek R代码中的ToString()方法发生了一些小变化,因为它生成了无效的校验和。
字符串
ulydmbyx3#
boost有这样的功能:
字符串
Live Example