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 編碼
編碼:
1 | public static string Base64Encode(string plainText) { |
解碼:
1 | public static string Base64Decode(string base64EncodedData) { |
在 JavaScript 中使用 Base64 編碼
編碼:
1 | const encodedData = window.btoa(stringToEncode); |
解碼:
1 | const decodeData = window.atob(encodedData) |
參考資料: