std::string MD5(const std::string& src)
{
unsigned char MD5Hash[MD5_DIGEST_LENGTH];
std::string MD5Digest;
std::string tmp;
std::stringstream ss;
MD5((const unsigned char*)src.c_str(), src.size(), MD5Hash);
for (int i = 0; i < MD5_DIGEST_LENGTH; ++i) {
// 2位16进制
ss << std::hex << std::setw(2) << std::setfill('0') << (int)MD5Hash[i] << std::endl;
ss >> tmp;
MD5Digest += tmp;
}
return MD5Digest;
}