C++ Base64エンコード/デコード実装方法【サンプルコード付】
既存のBase64ライブラリを使用するか、独自に実装することで、C++でBase64エンコードを実現することができます。以下は、既存のBase64ライブラリを使用する例です:
#include <iostream>
#include <string>
#include <vector>
#include <openssl/bio.h>
#include <openssl/evp.h>
#include <openssl/buffer.h>
std::string base64_encode(const std::vector<unsigned char> &data) {
BIO *bio, *b64;
BUF_MEM *bufferPtr;
b64 = BIO_new(BIO_f_base64());
bio = BIO_new(BIO_s_mem());
bio = BIO_push(b64, bio);
BIO_set_flags(bio, BIO_FLAGS_BASE64_NO_NL);
BIO_write(bio, data.data(), data.size());
BIO_flush(bio);
BIO_get_mem_ptr(bio, &bufferPtr);
BIO_set_close(bio, BIO_NOCLOSE);
BIO_free_all(bio);
return std::string(bufferPtr->data, bufferPtr->length);
}
int main() {
std::string input = "Hello, World!";
std::vector<unsigned char> data(input.begin(), input.end());
std::string encoded = base64_encode(data);
std::cout << "Base64 encoded string: " << encoded << std::endl;
return 0;
}
この例では、OpenSSLライブラリ内の関数を使用してBase64エンコードを実現しています。まず、入力データをBase64エンコードするためのbase64_encode関数を定義し、次にmain関数で例の文字列「Hello, World!」をエンコードして結果を出力します。入力データや出力方法を必要に応じて変更することができます。