Как преобразовать двоичную строку в данные, закодированные в base64 - PullRequest
4 голосов
/ 17 июня 2011

Я получаю двоичные данные в виде строки.Я хочу закодировать это в Base64.Есть ли класс, чтобы сделать эту операцию (я хочу API).

Ответы [ 2 ]

3 голосов
/ 06 октября 2015

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;
}
3 голосов
/ 17 июня 2011

Быстрый поиск в Google для c++ base64 дает вам следующие ссылки:
1
2
3

...