base64編碼是什麼

2021-03-24 13:01:13

base64編碼是網路上最常見的用於傳輸8Bit位元組碼的編碼方式之一,Base64就是一種基於64個可列印字元來表示二進位制資料的方法。可檢視【RFC2045~RFC2049】,上面有MIME的詳細規範。

本文操作環境:Windows7系統,Dell G3電腦。

Base64編碼是從二進位制到字元的過程,可用於在HTTP環境下傳遞較長的標識資訊。採用Base64編碼具有不可讀性,需要解碼後才能閱讀。

Base64由於以上優點被廣泛應用於計算機的各個領域,然而由於輸出內容中包括兩個以上「符號類」字元(+, /, =),不同的應用場景又分別研製了Base64的各種「變種」。為統一和規範化Base64的輸出,Base62x被視為無符號化的改進版本。

標準的Base64並不適合直接放在URL裡傳輸,因為URL編碼器會把標準Base64中的「/」和「+」字元變為形如「%XX」的形式,而這些「%」號在存入資料庫時還需要再進行轉換,因為ANSI SQL中已將「%」號用作萬用字元。

為解決此問題,可採用一種用於URL的改進Base64編碼,它在末尾填充'='號,並將標準Base64中的「+」和「/」分別改成了「-」和「_」,這樣就免去了在URL編解碼和資料庫儲存時所要作的轉換,避免了編碼資訊長度在此過程中的增加,並統一了資料庫、表單等處物件識別符號的格式。

另有一種用於正規表示式的改進Base64變種,它將「+」和「/」改成了「!」和「-」,因為「+」,「*」以及前面在IRCu中用到的「[」和「]」在正規表示式中都可能具有特殊含義。

此外還有一些變種,它們將「+/」改為「_-」或「._」(用作程式語言中的識別符號名稱)或「.-」(用於XML中的Nmtoken)甚至「_:」(用於XML中的Name)。

Base64要求把每三個8Bit的位元組轉換為四個6Bit的位元組(3*8 = 4*6 = 24),然後把6Bit再添兩位高位0,組成四個8Bit的位元組,也就是說,轉換後的字串理論上將要比原來的長1/3。

規則

關於這個編碼的規則:

①.把3個位元組變成4個位元組。

②每76個字元加一個換行符。

③.最後的結束符也要處理。

例子

轉換前 11111111, 11111111, 11111111 (二進位制)

轉換後 00111111, 00111111, 00111111, 00111111 (二進位制)

上面的三個位元組是原文,下面的四個位元組是轉換後的Base64編碼,其前兩位均為0。

轉換後,我們用一個碼錶來得到我們想要的字串(也就是最終的Base64編碼),這個表是這樣的:(摘自RFC2045)

相關視訊推薦:

以上就是base64編碼是什麼的詳細內容,更多請關注TW511.COM其它相關文章!