最重要的是算法
1.便於網絡傳輸。安全
2.不可見性。網絡
(一)Encoding VS. Encryption編碼
不少人都覺得編碼(Encoding)和加密(Encryption)是同一個意思。編碼和加密都是對格式的一種轉換,可是它們是有區別的。編碼是 公開的,好比下面要介紹的Base 64編碼,任何人均可以解碼;而加密則相反,你只但願本身或者特定的人才能夠對內容進行解密。加密
(二)Base 64編碼code
Base 64 Encoding有什麼用?舉個簡單的例子,你使用SMTP協議 (Simple Mail Transfer Protocol 簡單郵件傳輸協議)來發送郵件。由於這個協議是基於文本的協議,因此若是郵件中包含一幅圖片,咱們知道圖片的存儲格式是二進制數據(binary data),而非文本格式,咱們必須將二進制的數據編碼成文本格式,這時候Base 64 Encoding就派上用場了。xml
Base64編碼的做用:因爲某些系統中只能使用ASCII字符。Base64就是用來將非ASCII字符的數據轉換成ASCII字符的一種方法。它使用下面表中所使用的字符與編碼。
並且base64特別適合在http,mime協議下快速傳輸數據。
base64其實不是安全領域下的加密解密算法。雖然有時候常常看到所謂的base64加密解密。其實base64只能算是一個編碼算法,對數據內容進行編碼來適合傳輸。雖然base64編碼事後原文也變成不能看到的字符格式,可是這種方式很初級,很簡單。圖片
X.509公鑰證書也好,電子郵件數據也好,常常要用到Base64編碼,那麼爲何要做一下這樣的編碼呢?ci
咱們知道在計算機中任何數據都是按ascii碼存儲的,而ascii碼的128~255之間的值是不可見字符。而在網絡上交換數據時,好比說從A地傳到B地,每每要通過多個路由設備,因爲不一樣的設備對字符的處理方式有一些不一樣,這樣那些不可見字符就有可能被處理錯誤,這是不利於傳輸的。因此就先把數據先作一個Base64編碼,通通變成可見字符,這樣出錯的可能性就大下降了。路由