c++ - 如何将二进制字符串转换为base64编码的数据

标签 c++ class encoding base64 binary-data

我正在接收字符串中的二进制数据。我想将其编码为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/62293965/

相关文章:

类实例与局部(numpy)变量的 Python 性能

android - 在 jexcelapi 中编码

c++ - 如何使用 OpenCL C++ API 获取设备 cl_device_id

c++ - 生成字符串中的所有字谜 C++

java - 条件接口(interface)实现

c# - 阅读网站的编码问题,三种不同的编码

Git:如何在命令行上指定包含八进制符号的文件名

c++ - 从 QProcess 执行/bin/登录

c++ - C++ 编译器如何支持 C++11 原子,但不支持 C++11 内存模型

python-3.x - 如果文件用 int 而不是 string 写入,python 中的错误处理