Base64 编码整理
前面整理了websocket的知識,其中有一個base64編碼的小知識,今天就對這個小知識進行一下整理。
1、Base64
Base64是一種基于64個可打印字符來表示二進制數據的表示方法。因為只有64種字符,使用6位就可表示過來,所以base64是每6位一個單元,對應某個可打印字符。
哪些是可打印字符?其實就是 A-Z,a-z,0-9,+,/ 這64個字符。如下圖所示:
Base64可以將任何數據都進行編碼,因為計算機本身就是二進制存儲的。
2、編碼原理
下面舉幾個例子,邊看例子邊講解:
對字符串 Man進行編碼,原有數據占三個字節,每個字節8位。轉換過程如下圖所示:
編碼過程是先進行6位分組,但是計算機是按照字節存儲的,最少8位,就在最高的 2 位進行補 0,所以編碼后的數據比原始數據多 1/3 的空間。最終,字符串 [ Man ] 經過Base64編碼變成了字符串 [ TWFu ],由之前的 3 個字節變成了 4 個字節。
如果原有的字符串不是6的倍數呢?
這個也是通過補位進行實現,如果不足6的倍數,剩下的空位補 0。如果沒有匹配的字符,則使用[ = ] 字符填充。如下圖所示:
這樣,原有的字符串 [ Ma ] 經過Base64編碼變成了字符串 [ TWE= ]。
3、解碼
通過上面的編碼的知識,解碼就很簡單了。具體可分為三步
4、使用場景
我看資料Base64有很多的使用場景,但是我覺著最主要的還是避免一些 特殊字符 和 不可見字符 引起的錯誤。
需要注意的是Base64并不是一個加密算法,它只是一個編碼算法。我們上面也介紹過了,它的編碼和解碼都很容易。
感謝大家,我是假裝很努力的YoungYangD(小羊)。
參考資料:
https://en.wikipedia.org/wiki/Base64
總結
以上是生活随笔為你收集整理的Base64 编码整理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 荣耀x10max支持鸿蒙,根河收购荣耀X
- 下一篇: SAP携手“大数据之都” 共推大数据创新