Base64編碼及其作用

2021-09-08 04:12:37 字數 1460 閱讀 6325

最重要的是

1.便於網路傳輸。

2.不可見性。

(一)encoding vs. encryption

很多人都以為編碼(encoding)和加密(encryption)是同乙個意思。編碼和加密都是對格式的一種轉換,但是它們是有區別的。編碼是 公開的,比如下面要介紹的base 64編碼,任何人都可以解碼;而加密則相反,你只希望自己或者特定的人才可以對內容進行解密。

(二)base 64編碼

base 64 encoding有什麼用?舉個簡單的例子,你使用smtp協議 (****** mail transfer protocol 簡單郵件傳輸協議)來傳送郵件。因為這個協議是基於文字的協議,所以如果郵件中包含一幅,我們知道的儲存格式是二進位制資料(binary data),而非文字格式,我們必須將二進位制的資料編碼成文字格式,這時候base 64 encoding就派上用場了。

base64編碼的作用:由於某些系統中只能使用ascii字元。base64就是用來將非ascii字元的資料轉換成ascii字元的一種方法。它使用下面表中所使用的字元與編碼。

而且base64特別適合在http,mime協議下快速傳輸資料。

base64其實不是安全領域下的加密解密演算法。雖然有時候經常看到所謂的base64加密解密。其實base64只能算是乙個編碼演算法,對資料內容進行編碼來適合傳輸。雖然base64編碼過後原文也變成不能看到的字元格式,但是這種方式很初級,很簡單。

x.509公鑰證書也好,電子郵件資料也好,經常要用到base64編碼,那麼為什麼要作一下這樣的編碼呢?

我們知道在計算機中任何資料都是按ascii碼儲存的,而ascii碼的128~255之間的值是不可見字元。而在網路上交換資料時,比如說從a地傳到b地,往往要經過多個路由裝置,由於不同的裝置對字元的處理方式有一些不同,這樣那些不可見字元就有可能被處理錯誤,這是不利於傳輸的。所以就先把資料先做乙個base64編碼,統統變成可見字元,這樣出錯的可能性就大降低了。

如乙個xml當中包含另乙個xml資料,此時如果將xml資料直接寫入顯然不合適,將xml進行適當編碼存入較為方便,事實上xml當中的字元一般都是可見字元(0-127之間),但是由於中文的存在,可能存在不可見字元,直接將字元列印在外層xml的資料中顯然不合理,那麼怎麼辦呢?

可以使用base64進行編碼,然後存入xml,解碼反之

其實還有個辦法,將byte的值寫在xml當中,空格或者,分開,這樣也可以將byte資料傳入,不過這樣更浪費空間,並且不易儲存.

另乙個,比如http協議當中的key value欄位,必須進行urlencode 不然出現的等號可能使解析失敗 空格也會使http請求解析出現問題,比如 請求行就是以空格來劃分的 post /guowuxin/hehe http/1.1

又比如有些文字協議不支援不可見字元的傳遞,只能用大於32的可見字元來傳遞資訊(協議規定)

Base64編碼及其作用

最重要的是 1.便於網路傳輸。2.不可見性。一 encoding vs.encryption 很多人都以為編碼 encoding 和加密 encryption 是同乙個意思。編碼和加密都是對格式的一種轉換,但是它們是有區別的。編碼是 公開的,比如下面要介紹的base 64編碼,任何人都可以解碼 而加...

Base64編碼及其作用

base64編碼的作用 1.由於某些系統中只能使用ascii字元。base64就是用來將非ascii字元的資料轉換成ascii字元的一種方法。它使用下面表中所使用的字元與編碼。2.base64特別適合在http,mime協議下快速傳輸資料。一些證書也好,電子郵件資料也好,那麼為什麼要作一下這樣的編碼...

Base64編碼及其作用

base64編碼及其作用 最重要的是 1.便於網路傳輸。2.不可見性。一 encoding vs.encryption 很多人都以為編碼 encoding 和加密 encryption 是同乙個意思。編碼和加密都是對格式的一種轉換,但是它們是有區別的。編碼是 公開的,比如下面要介紹的base 64編...