首頁 > 後端開發 > C++ > 如何用 C 對 Base64 資料進行編碼和解碼?

如何用 C 對 Base64 資料進行編碼和解碼?

Barbara Streisand
發布: 2024-12-10 03:44:09
原創
470 人瀏覽過

How to Encode and Decode Base64 Data in C  ?

C 語言中的Base64 解碼片段

Base64 是一種廣泛使用的編碼方案,可將二進位資料轉換為可列印的ASCII 字元字串。當透過並非為其傳輸而設計的通道(例如電子郵件或網頁)傳輸二進位資料時,這通常是必要的。

實作詳細資訊

提供的程式碼片段實現C 中的 Base64 編碼和解碼功能。編碼函數取得二進位資料的緩衝區及其長度,並傳回包含編碼資料的字串。另一方面,解碼函數採用 Base64 編碼的字串並傳回包含解碼後的二進位資料的向量。

為了對二進位資料進行編碼,該程式碼段使用了一系列步驟:

  1. 它初始化一個三個位元組的陣列來儲存三個連續位元組的二進位數據。
  2. 它循環遍歷二進位資料緩衝區,在一個位置讀取三個位元組
  3. 對於每組三個位元組,它將它們轉換為四個6 位元值並將它們儲存在四個位元組的數組中。
  4. 它將每個 6 位元值對應到一個字元在 Base64 字母表中。
  5. 它將映射的字元附加到編碼的資料字串中。

解碼Base64 編碼的資料遵循類似的過程:

  1. 它初始化一個四個位元組的陣列來儲存解碼的資料。
  2. 它循環遍歷編碼的資料字串,讀取四個字符
  3. 對於每組四個字符,它在Base64 字母表中找到它們對應的值,並將它們轉換為四個6 位元
  4. 它將6 位元值拆分為三個8 位元位元組,並將它們儲存在解碼後的資料數組中。
  5. 它將解碼後的位元組附加到包含解碼後的二進位資料的向量中。

用法

使用提供的程式碼片段,在C 程式中包含「base64.h」頭檔並使用下列函數:

  • base64_encode:將二進位資料緩衝區編碼為Base64 編碼的字串。
  • base64_decode:將Base64 編碼的字串解碼為二進位向量data.

範例

以下是如何使用提供的程式碼片段對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;
}
登入後複製

This範例將輸出以下內容:

Encoded Data: tEs=
Decoded Data: 12 34 56 78
登入後複製

以上是如何用 C 對 Base64 資料進行編碼和解碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板