Skip to content

MD5结果以2位16进制输出

C++
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;
}