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, 0011111, 10111, 00111111, 0011111,
上面的三個位元組是原文,下面的四個位元組是轉換後的Base64編碼,其前兩位為0。 轉換後,我們用一個碼表來得到我們想要的字串(也就是最終的Base64編碼),這個表是這樣的:(摘自RFC2045)相關影片推薦:#
以上是base64編碼是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!