Base64編碼的作用:
由于某些系統中只能使用ASCII字符。Base64就是用來將非ASCII字符的數據轉換成ASCII字符的一種方法。
Base編碼表
a-z A-Z 0-0 + / =(等號是用來末尾填充的)
image.png
具體實現
Base64要求把每三個8Bit的字節轉換為四個6Bit的字節(38 = 46 = 24),然后把6Bit再添兩位高位0,組成四個8Bit的字節,也就是說,轉換后的字符串理論上將要比原來的長1/3。
舉例:
轉換前 aaaaaabb ccccdddd eeffffff
轉換后 00aaaaaa 00bbcccc 00ddddee 00ffffff
其他說明
1.標準base64只有64個字符(英文大小寫、數字和+、/)以及用作后綴等號;
2.base64是把3個字節變成4個可打印字符,所以base64編碼后的字符串一定能被4整除(不算用作后綴的等號);
3.等號一定用作后綴,且數目一定是0個、1個或2個。這是因為如果原文長度不能被3整除,base64要在后面添加\0湊齊3n位。為了正確還原,添加了幾個\0就加上幾個等號。顯然添加等號的數目只能是0、1或2;
4.嚴格來說base64不能算是一種加密,只能說是編碼轉換。使用base64的初衷。是為了方便把含有不可見字符串的信息用可見字符串表示出來,以便復制粘貼;