gpt4 book ai didi

c++ - 如何在此代码 C++ 中返回字符串中的 md5 哈希值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:31 25 4
gpt4 key购买 nike

我有这段代码可以正确显示字符串的 md5。我更喜欢向函数返回一个字符串,但是我在将 md5 的值转换为我的字符串时遇到了一些问题。这是代码:

string calculatemd5(string msg)
{
string result;
const char* test = msg.c_str();
int i;

MD5_CTX md5;

MD5_Init (&md5);
MD5_Update (&md5, (const unsigned char *) test, msg.length());
unsigned char buffer_md5[16];
MD5_Final ( buffer_md5, &md5);
printf("Input: %s", test);
printf("\nMD5: ");
for (i=0;i<16;i++){
printf ("%02x", buffer_md5[i]);
result[i]=buffer_md5[i];
}
std::cout <<"\nResult:"<< result[i]<<endl;
return result;
}

例如 result[i] 是一个奇怪的 ascii 字符,如下所示:.怎么可能解决这个问题?

最佳答案

更简洁(更快)的方式可能是这样的:

std::string result;
result.reserve(32); // C++11 only, otherwise ignore

for (std::size_t i = 0; i != 16; ++i)
{
result += "0123456789ABCDEF"[hash[i] / 16];
result += "0123456789ABCDEF"[hash[i] % 16];
}

return result;

关于c++ - 如何在此代码 C++ 中返回字符串中的 md5 哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8257432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com