為什麼要使用base64編碼,有哪些情景需求?

2021-09-27 08:39:03 字數 869 閱讀 6640

base64是一種資料編碼方式,目的是讓資料符合傳輸協議的要求

我們知道在計算機中任何資料都是按ascii碼儲存的,而ascii碼的128~255之間的值是不可見字元。

而在網路上交換資料時,比如說從a地傳到b地,往往要經過多個路由裝置,

由於不同的裝置對字元的處理方式有一些不同,這樣那些不可見字元就有可能被處理錯誤,這是不利於傳輸的。

所以就先把資料先做乙個base64編碼,統統變成可見字元,這樣出錯的可能性就大降低了。

電子郵件的附件一般也作base64編碼的,因為乙個附件資料往往是有不可見字元的。

比如http協議當中的key value欄位的值,必須進行urlencode ,

因為一些特殊符號(等號或者空格)是有特殊含義的,造成混淆,解析失敗,那麼需要把這些值統一處理為可見字元,傳輸完再解析回來。

xml格式的檔案中如果想嵌入另乙個xml檔案。直接嵌入,那麼各種標籤(有兩套xml標籤)就混亂了,不容易被解析。怎麼辦?

1,把另乙個xml編譯成位元組陣列轉換成逗號隔開的字串。

2,編譯成可見字元。

結果:2好些。因為1消耗的空間比原來多一倍,而2只是多三分之一。

很多比較老的協議還是只支援純文字的,比如smtp協議。

有時在一些特殊應用的場合,大多數訊息是純文字的,偶爾需要用這條純文字通道傳一張之類的情況發生的時候,就會用到base64

http雖然也是純文字協議,但是http有針對二進位制資料做特殊的規定(mime),所以用http直接傳輸二進位制資料是可行的。

但是有些特殊情況,比如返回需要在json內部之類的。

參考:

為什麼要使用Base64?

在設計這個編碼的時候,我想設計人員最主要考慮了3個問題 1.是否加密?2.加密演算法複雜程度和效率 3.如何處理傳輸?加密是肯定的,但是加密的目的不是讓使用者傳送非常安全的email。這種加密方式主要就是 防君子不防小人 即達到一眼望去完全看不出內容即可。基於這個目的加密演算法的複雜程度和效率也就不...

為什麼要使用Base64?

為什麼要使用base64?在設計這個編碼的時候,我想設計人員最主要考慮了3個問題 1.是否加密?2.加密演算法複雜程度和效率 3.如何處理傳輸?加密是肯定的,但是加密的目的不是讓使用者傳送非常安全的email。這種加密方式主要就是 防君子不防小人 即達到一眼望去完全看不出內容即可。基於這個目的加密演...

為什麼使用Base64

是一種基於64個可列印字元來表示二進位制資料的表示方法。在mime格式的電子郵件中,使用的字元包括大小寫拉丁字母各26個 數字10個 加號 和斜槓 共64個字元,在日常使用中我們還會看到 或 號出現在base64的編碼結果中,在此是作為填充字元出現.我們都知道計算機系統之間通過二進位制位元組流傳輸資...