android 基礎 加密 簡易加密BASE64Decoder
阿新 • • 發佈:2019-02-07
什麼是Base64?按照RFC2045的定義,Base64被定義為:Base64內容傳送編碼被設計用來把任意序列的8位位元組描述為一種不易被人直接識別的形式。(TheBase64
Content-Transfer-Encoding is designed to represent arbitrary sequencesof octets in a form that need not be humanly readable.)為什麼要使用Base64?在設計這個編碼的時候,我想設計人員最主要考慮了3個問題:
1.是否加密?
2.加密演算法複雜程度和效率
3.如何處理傳輸?加密是肯定的,但是加密的目的不是讓使用者傳送非常安全的 Email。這種加密方式主要就是“防君子不防小人”。即達到一眼望去完全看不出內容即可。基於這個目的加密演算法的複雜程度和效率也就不能太大和太低。和上一個理由類似,MIME協議等用於傳送Email的協議解決的是如何收發Email,而並不是如何安全的收發Email。因此演算法的複雜程度要小,效率要高,否則因為傳送Email而大量佔用資源,路就有點走歪了。但是,如果是基於以上兩點,那麼我們使用最簡單的愷撒法即可,為什麼Base64看起來要比愷撒法複雜呢?這是因為在Email的傳送過程中,由於歷史原因,Email只被允許傳送ASCII字元,即一個8位位元組的低7位。因此,如果您傳送了一封帶有非ASCII 字元(即位元組的最高位是1)的Email通過有“歷史問題”的閘道器時就可能會出現問題。閘道器可能會把最高位置為0!很明顯,問題就這樣產生了!因此,為了能夠正常的傳送Email,這個問題就必須考慮!所以,單單靠改變字母的位置的愷撒之類的方案也就不行了。關於這一點可以參考RFC2046。基於以上的一些主要原因產生了Base64編碼。 其實愷撒法和Base64都是一種目的,簡易加密。只是計算機只識別0和1所以出現了Base64.
1.是否加密?
2.加密演算法複雜程度和效率
3.如何處理傳輸?加密是肯定的,但是加密的目的不是讓使用者傳送非常安全的