初識base64編碼

2021-08-28 18:05:19 字數 1314 閱讀 5415

1、為什麼會有base64?

早期的一些郵件伺服器只支援文字資訊,不支援二進位制資訊和檔案。而base64編碼後的結果都是ascii低128位,也就是都是純文字的,適合用電子郵件來傳送二進位制資料。

http協議是超文字傳輸協議,http協議是以ascii碼傳輸,建立在tcp/ip協議之上的應用層規範(渣渣要加上的!!).在http1.1及以前標準不支援二進位制傳輸,所以只能進行base64編碼後將二進位制資料轉換成可見字元進行資料傳輸。

在ascii碼中規定,0-31、127這33個字元屬於控制字元,32~126 這95個字元屬於可列印字元,也就是說網路傳輸只能傳輸這95個字元,不在這個範圍內的字元無法傳輸。

注:在ascii碼中0~31及127(共33個)是控制字元或通訊專用字元(其餘為可顯示字元),如控制符:lf(換行)、cr(回車)、ff(換頁)、del(刪除)、bs(退格)、bel(響鈴)等;通訊專用字元:soh(文頭)、eot(文尾)、ack(確認)等;ascii值為8、9、10 和13 分別轉換為退格、製表、換行和回車字元。它們並沒有特定的圖形顯示,但會依不同的應用程式,而對文字顯示有不同的影響。 32~126(共95個)是字元(32是空格),其中48~57為0到9十個阿拉伯數字。 65~90為26個大寫英文本母,97~122號為26個小寫英文本母,其餘為一些標點符號、運算符號等。

2、為什麼叫base64?

base64位編碼是使用64位ascii可見字元,將二進位制資料轉為成網路上可傳輸的可見字元。使用的64位ascii可見字元是指:a-z、a-z、0-9及+、/ 這個64個字元編碼。

base64的索引與對應字元的關係圖。

3、base64編碼是如何將二進位制資料進行編碼的?

從上表可看出,最多可用6bit 來表示base64表中的64個索引位置。

在轉換時,將二進位制資料 每6bit分成一組。但是在ascii中乙個字元是用8bit表示,所以base64 在講二進位制資料每6位分成一組後高位補中兩個0。

對二進位制資料進行處理,每3個位元組一組,一共是3x8=24bit,劃為4組,每組正好6個bit。

如果要編碼的二進位制資料不是3的倍數,最後會剩下1個或2個位元組怎麼辦?base64用\x00位元組在末尾補足後,再在編碼的末尾加上1個或2個=號,表示補了多少位元組,解碼的時候,會自動去掉。

字元base進行base64位轉碼過程圖示:

由上可知二進位制資料經過base64編碼後,資料大小**了33%。

base64編碼 動畫演示 Base 64 編碼

base64 是一種十分流行的編碼方式,僅僅使用 64 個字元加等號 就可以以文字的形式表示所有的二進位制資料了,因為它能夠把二進位制格式通過編碼轉換成可見字元,所有我們就可以通過的把二進位制格式比如,檔案等通過 base64 編碼然後通過文字的形式共享出去,是不是很神奇呀。把輸入的資料轉換成 二進...

Base64編碼演算法

base64要求把每三個8bit的位元組轉換為四個6bit的位元組 3 8 4 6 24 然 後把6bit再添兩位高位0,組成四個8bit的位元組,也就是說,轉換後的字串理 論上將要比原來的長1 3。轉換後,我們用乙個碼表來得到我們想要的字串 也就是最終的base64編碼 這個表是這樣的 0 a 1...

Base64編碼演算法

base64 construe aaaaaaaa bbbbbbbb cccccccc dddddddd ffffffff 3byte to 4byte is encode 00aaaaaa 00aabbbb 00bbbbcc 00cccccc 3byte newlen 4 00aaaaaa 00aa...