備忘録

備忘録

C++でBase64をエンコード、デコードする方法

Ⅰ. はじめに

タイトルの通り「C++Base64エンコード、デコードする方法」です。

Ⅱ. やり方

1. botanをインストールする
vcpkg install botan
2. サンプルプログラムを書く
#include <iostream>
#include <botan/base64.h>

using namespace Botan;

int main()
{
  std::string str("Hello World");
  str = base64_encode(reinterpret_cast<const uint8_t*>(str.data()), str.size());
  std::cout << str << std::endl;

  auto decoded = base64_decode(str);
  str.assign(decoded.begin(), decoded.end());
  std::cout << str << std::endl;

  return 0;
}
2. サンプルプログラムを書く(Pipeを利用する方法)
#include <iostream>
#include <botan/pipe.h>
#include <botan/b64_filt.h>

using namespace Botan;

std::string Base64Encode(const std::string str)
{
  Pipe pipe(new Base64_Encoder);
  pipe.process_msg(str);
  return pipe.read_all_as_string();
}

std::string Base64Decode(const std::string str)
{
  Pipe pipe(new Base64_Decoder);
  pipe.process_msg(str);
  return pipe.read_all_as_string();
}

int main()
{
  std::string str("Hello World");

  str = Base64Encode(str);
  std::cout << str << std::endl;

  str = Base64Decode(str);
  std::cout << str << std::endl;

  return 0;
}
3. 実行結果
SGVsbG8gV29ybGQ=
Hello World