ホームページ > バックエンド開発 > C++ > C で Base64 データをエンコードおよびデコードするにはどうすればよいですか?

C で Base64 データをエンコードおよびデコードするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-10 03:44:09
オリジナル
469 人が閲覧しました

How to Encode and Decode Base64 Data in C  ?

C での Base64 デコード スニペット

Base64 は、バイナリ データを印刷可能な ASCII 文字の文字列に変換する、広く使用されているエンコード スキームです。これは、電子メールや Web ページなど、送信用に設計されていないチャネルを介してバイナリ データを送信する場合に必要になることがよくあります。

実装の詳細

提供されたコード スニペットは、次のように実装します。 C の Base64 のエンコード機能とデコード機能の両方。エンコード関数は、バイナリ データのバッファとその長さを受け取り、エンコードされたデータを含む文字列を返します。一方、デコード関数は、Base64 でエンコードされた文字列を受け取り、デコードされたバイナリ データを含むベクトルを返します。

バイナリ データをエンコードするには、スニペットは一連の手順を使用します。

  1. バイナリ データの連続する 3 バイトを保存するために 3 バイトの配列を初期化します。
  2. バイナリ データ バッファをループし、一度に 3 バイトを読み取ります。
  3. 3 バイトのセットごとに、それらを 4 つの 6 ビット値に変換し、4 バイトの配列に格納します。
  4. 各 6 ビット値を Base64 アルファベットの文字にマップします。
  5. マップされた文字をエンコードされたデータ文字列。

Base64 でエンコードされたデータのデコードも同様のプロセスに従います。

  1. デコードされたデータを保存するために 4 バイトの配列を初期化します。
  2. エンコードされたデータ文字列をループし、一度に 4 文字を読み取ります。
  3. の場合4 つの文字の各セットに対して、Base64 アルファベットで対応する値を検索し、それらを 4 つの 6 ビット値に変換します。
  4. 6 ビット値を 3 つの 8 ビット バイトに分割し、デコードされたデータに格納します。データ配列。
  5. デコードされたバイナリを含むベクトルにデコードされたバイトを追加します。 data.

使用法

提供されたコード スニペットを使用するには、C プログラムに「base64.h」ヘッダー ファイルを組み込み、次の関数を使用します。

  • base64_encode: バイナリ データのバッファをエンコードしてBase64 でエンコードされた文字列。
  • base64_decode: Base64 でエンコードされた文字列をバイナリ データのベクトルにデコードします。

これは提供されているを使用して Base64 データをエンコードおよびデコードする方法の例スニペット:

#include "base64.h"

int main() {
  // Binary data to encode
  std::vector<BYTE> data = {0x12, 0x34, 0x56, 0x78};

  // Encode the data using Base64
  std::string encodedData = base64_encode(&data[0], data.size());

  // Print the encoded data
  std::cout << "Encoded Data: " << encodedData << std::endl;

  // Decode the Base64-encoded data
  std::vector<BYTE> decodedData = base64_decode(encodedData);

  // Print the decoded data
  std::cout << "Decoded Data:";
  for (BYTE byte : decodedData) {
    std::cout << " " << std::hex << (int)byte;
  }
  std::cout << std::endl;

  return 0;
}
ログイン後にコピー

この例では次が出力されます:

Encoded Data: tEs=
Decoded Data: 12 34 56 78
ログイン後にコピー

以上がC で Base64 データをエンコードおよびデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート