我正在接收字符串中的二进制数据。我想将其编码为 Base64。是否有任何类可以执行该操作(我想要一个 API)。
最佳答案
CryptBinaryToString
...如果您的目标是 Windows 平台
这是一个小示例:
#include <Windows.h>
#pragma comment(lib, "crypt32.lib")
int main()
{
LPCSTR pszSource = "Man is distinguished, not only by his reason, but ...";
DWORD nDestinationSize;
if (CryptBinaryToString(reinterpret_cast<const BYTE*> (pszSource), strlen(pszSource), CRYPT_STRING_BASE64, nullptr, &nDestinationSize))
{
LPTSTR pszDestination = static_cast<LPTSTR> (HeapAlloc(GetProcessHeap(), HEAP_NO_SERIALIZE, nDestinationSize * sizeof(TCHAR)));
if (pszDestination)
{
if (CryptBinaryToString(reinterpret_cast<const BYTE*> (pszSource), strlen(pszSource), CRYPT_STRING_BASE64, pszDestination, &nDestinationSize))
{
// Succeeded: 'pszDestination' is 'pszSource' encoded to base64.
}
HeapFree(GetProcessHeap(), HEAP_NO_SERIALIZE, pszDestination);
}
}
return 0;
}
关于c++ - 如何将二进制字符串转换为 base64 编码的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6385319/