Heim > Backend-Entwicklung > C++ > Wie kodiere und dekodiere ich Base64-Daten in C?

Wie kodiere und dekodiere ich Base64-Daten in C?

Barbara Streisand
Freigeben: 2024-12-10 03:44:09
Original
470 Leute haben es durchsucht

How to Encode and Decode Base64 Data in C  ?

Base64-Dekodierungsausschnitt in C

Base64 ist ein weit verbreitetes Codierungsschema, das Binärdaten in eine Zeichenfolge druckbarer ASCII-Zeichen umwandelt. Dies ist häufig erforderlich, wenn Binärdaten über Kanäle übertragen werden, die nicht für die Übertragung ausgelegt sind, wie z. B. E-Mail oder Webseiten.

Implementierungsdetails

Das bereitgestellte Code-Snippet wird implementiert sowohl die Codierungs- als auch die Decodierungsfunktionalität von Base64 in C. Die Kodierungsfunktion benötigt einen Puffer mit Binärdaten und deren Länge und gibt eine Zeichenfolge zurück, die die kodierten Daten enthält. Die Dekodierungsfunktion hingegen nimmt eine Base64-kodierte Zeichenfolge und gibt einen Vektor zurück, der die dekodierten Binärdaten enthält.

Um Binärdaten zu kodieren, verwendet das Snippet eine Reihe von Schritten:

  1. Es initialisiert ein Array von drei Bytes, um drei aufeinanderfolgende Bytes der Binärdaten zu speichern.
  2. Es durchläuft den Binärdatenpuffer und liest jeweils drei Bytes.
  3. Für jeden Satz von drei Bytes werden diese in vier 6-Bit-Werte umgewandelt und in einem Array von vier Bytes gespeichert.
  4. Es ordnet jedes 6-Bit zu Wert zu einem Zeichen im Base64-Alphabet.
  5. Es hängt die zugeordneten Zeichen an die codierten Daten an string.

Das Dekodieren von Base64-kodierten Daten folgt einem ähnlichen Prozess:

  1. Es initialisiert ein Array von vier Bytes, um die dekodierten Daten zu speichern.
  2. Es durchläuft die codierte Datenzeichenfolge und liest jeweils vier Zeichen.
  3. Für jeden Satz von vier Zeichen wird das entsprechende Zeichen gefunden Werte im Base64-Alphabet und wandelt sie in vier 6-Bit-Werte um.
  4. Es teilt die 6-Bit-Werte in drei 8-Bit-Bytes auf und speichert sie im dekodierten Datenarray.
  5. Es Hängt die dekodierten Bytes an den Vektor an, der die dekodierte Binärdatei enthält Daten.

Verwendung

Um das bereitgestellte Code-Snippet zu verwenden, fügen Sie die Header-Datei „base64.h“ in Ihr C-Programm ein und verwenden Sie die folgenden Funktionen:

  • base64_encode: Kodiert einen Puffer mit Binärdaten in eine Base64-kodierte Datei string.
  • base64_decode: Dekodiert einen Base64-codierten String in einen Vektor binärer Daten.

Beispiel

Hier ist ein Beispiel dafür zum Kodieren und Dekodieren von Base64-Daten mithilfe der bereitgestellten Snippet:

#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;
}
Nach dem Login kopieren

Dieses Beispiel gibt Folgendes aus:

Encoded Data: tEs=
Decoded Data: 12 34 56 78
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kodiere und dekodiere ich Base64-Daten in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage