std::wstring hashStr(L"4727b105cf792b2d8ad20424ed83658c");
//....
byte digest[16];
如何在摘要中获取我的 md5 哈希值? 我的答案是:
wchar_t * EndPtr;
for (int i = 0; i < 16; i++) {
std::wstring bt = hashStr.substr(i*2, 2);
digest[i] = static_cast<BYTE>(wcstoul(bt.c_str(), &EndPtr, 16));
}
最佳答案
您需要从 hashStr
中读取两个字符,将它们从十六进制值转换为二进制值,并将该值放入 digest
中的下一个位置——这上面的东西顺序:
for (int i=0; i<16; i++) {
std::wstring byte = hashStr.substr(i*2, 2);
digest[i] = hextobin(byte);
}
关于C++:如何将带有 md5 哈希的 wstring 转换为 byte* 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9365627/