一、什麼是base64編碼和解碼
在計算機領域中,常常需要在網絡中傳輸二進制數據,但是某些傳輸途中(例如:電子郵件、HTTP文本協議(HTTP)等)只支持 ASCII 字符集,這就需要將二進制數據編碼成 ASCII 字符集所支持的字符。
base64編碼採用64個可打印字符來表示二進制數據,生成出來的碼可以用於在URL或者網頁上直接傳輸而不會造成數據的損失。
在base64編碼算法中,將3個字節的二進制數據編碼為4個字符,使傳輸數據量縮小約三分之一。這種編碼方式常用於郵件傳輸,以便將8位字節的數據用只有6位有效位的ASCII字符代替,通常用於處理字節序列,即通常所說的二進制數據。
二、base64編碼過程
base64編碼的過程可以簡單的概括為以下幾步:
1. 將需要傳輸的數據按3個一組進行劃分 2. 將劃分出來的3個字符轉換為ASCII字符 3. 將ASCII字符轉換為對應的6位二進制數 4. 將轉換後的6位二進制數拼成一個二進制字符串 5. 將拼接好的二進制字符串每6位一個字節,不足的在後面補上0,生成的一個一個字節的數據就是傳輸的數據 6. 如果最後一組不足3個字符,用=表示缺少的字符
三、base64解碼過程
base64解碼的過程可以簡單的概括為以下幾步:
1. 將base64編碼的字符串每4個一組進行劃分 2. 將劃分出來的4個字符轉換為對應的6位二進制數 3. 將轉換後的6位二進制數拼成一個二進制字符串 4. 將拼接好的二進制字符串每8位一個字節,生成的一個一個字節的數據就是解碼後的數據 5. 如果解碼後的數據中間存在0,說明解碼失敗
四、base64常見應用場景
base64常見應用場景包括:
1. 在URL、Cookie、網頁的傳參過程中,二進制轉換成可打印字符,防止數據被截斷或丟失。
2. 在郵件傳輸的過程中,由於email只支持ASCII編碼,採用base64轉換成ASCII碼,從而進行傳輸。
3. 在圖片、音頻和視頻文件的傳輸中,為了讓它們能夠在網絡上自由傳播,base64編碼成字符串的形式。同時也可以將圖片直接編譯成base64的文本放入html當中,減少http請求,加快速度。
五、base64實現代碼示例
以下是Node.js中base64編解碼的示例代碼:
// Node.js中base64編碼 const encodedString = Buffer.from('Hello World').toString('base64'); console.log(encodedString); // "SGVsbG8gV29ybGQ=" // Node.js中base64解碼 const decodedData = Buffer.from('SGVsbG8gV29ybGQ=', 'base64').toString('ascii'); console.log(decodedData); // "Hello World"
原創文章,作者:TWKL,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/145433.html