July
25th,
2022
Base64 編碼格式的使用經常出現在各個開發平台中,這種編碼格式有著演算法簡單、幾乎不會造成效能影響、甚至解碼也相當方便,這篇記錄一下在 C# 和 JavaScript 中使用 Base64 編碼的方法。
為什麼使用 Base64
Base64 編碼是將二進位的值轉換到 64 個 ASCII 特定字元的編碼過程,藉由這個文字串來傳輸資料內容,可以不用擔心在傳輸過程中,因為編解碼的過程中,造成檔案損壞。也因為是使用 ASCII 來傳輸資料,而基本上這世界上的所有電腦都支援 ASCII,因此這個編碼方式適用的平台就極為廣泛。
其中這 64 個 ASCII 字元就是小寫字母 a
-z
、大寫字母 A
-Z
、數位 0
-9
、以及符號 +
、/
一共 64 個字符的字元集。
不過實際使用上你會發現,Base64 的編碼還會使用到 =
符號,這是因為執行編碼演算法時,為了補足編碼字節,會在最後加上 =
符號,這樣就可以在編解碼時,讓解碼字節的數量等於演算法設計的字節數量。
那麼在 C# 和 JavaScript 中,如何使用原生提供的 API 來處理 Base64 編碼呢?
在 C# 中使用 Base64 編碼
編碼:
public static string Base64Encode(string plainText) {
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
}
解碼:
public static string Base64Decode(string base64EncodedData) {
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}
在 JavaScript 中使用 Base64 編碼
編碼:
const encodedData = window.btoa(stringToEncode);
解碼:
const decodeData = window.atob(encodedData)
參考資料: