#include <boost/algorithm/hex.hpp>
#include <boost/uuid/detail/md5.hpp>
#include <iostream>
#include <iterator>
using boost::uuids::detail::md5;
std::string get_md5_string(const std::string input) {
md5 hash;
md5::digest_type digest;
hash.process_bytes(input.data(), input.size());
hash.get_digest(digest);
const auto charDigest = reinterpret_cast<const char*>(&digest);
std::string result;
boost::algorithm::hex(charDigest, charDigest + sizeof(md5::digest_type), std::back_inserter(result));
return result;
}