Base64 是基於 64 個可打印字符 A-Z、a-z、0-9、+、/ 來表示二進制數據的表示方法,常用於數據在網絡中的傳輸。本篇將分別介紹其編碼、解碼以及實際運用。
Base64 編碼
Base64 本質是一種將二進制轉為文本的方案。基本規則如下:
- 編碼時候選用 64 (大小寫英文字母,數字,+ /)個字符以及用作補位的=來表示
- 在編碼的時候,將3個字節變為4個字節,4個字節的高兩位都用 00 來填充,后 6 位來表示 64 個字符。
以一個實際的例子 "YOU" 為例,其編碼過程如下:
由上表格可知 "YOU"對應的 Base64 編碼為:"WU9V"。
對於要待編碼的字符數如果不是 3 的倍數時候,會用 0 去填充,編碼出來后用 = 號表示,如: "ME" 其編碼如下:
Base64 解碼
將 4 個字節變為 3 個字節;
- 將 24 bit 左移 16 位,與 255 進行與操作,獲得第一個字符,
- 將 24 bit 左移 8 位,與 255 進行與操作,獲得第二個字符,
- 將 24 bit 與 255 進行與操作,獲取第三個字符
資源搜索網站大全 https://www.renrenfan.com.cn
Base64 實現與運用場景
在 Node 中提供 Buffer 模塊,可以進行二進制或者字符與 Base64 的想換轉換,其代碼如下:
const buf2 = Buffer.alloc(2); buf2.write("M", 0); buf2.write("E", 1); buf2.toString("base64"); //TUU= // base64 解碼 const decodeBase64 = new Buffer("TUU=", "base64").toString(); //ME
Base64 有着廣泛的使用,如:
- 對不支持二進制傳輸的場景, 將二進制數據編碼成 Base64 傳輸給服務器
- Base64 編碼圖片
- MIME, 電子郵件系統中使用 Base64 編碼后傳輸