1.base64編碼對照表標準如下:
2.base64 編碼原理:
ps:? 1字節(jié)byte = 8bit位? -> 一字節(jié)可存儲一個漢字臭增,兩個英文字母瞪讼。
base64編碼一共64個字符楼入,可以用6個bit位(2^6 = 64)表示出來,一字節(jié)由8個bit位,多余兩位用0填充。(注:一個base64字符仍有8個bit位灸异,有效部分為右六位)。
Base64編碼時羔飞,是將3個字節(jié)轉變?yōu)?個字節(jié)肺樟,最終得到的字節(jié)數(shù)必然是4的倍數(shù)。
接下來我們通過實例來分析:(將字符csf轉換成base64編碼)
①字符轉ASCII碼(ASCII碼對照表見附圖)
c=>99, s=>115, f=>102
②ASCII碼轉成二進制
99=>0110?0011,115=>0111?0011,102=>0110?0110
③三個字節(jié)(3x8=24bit位)轉成四個字節(jié)(4x6=24bit位)逻淌,并在每個6bit位前補兩個0么伯,重新變成8bit位的字節(jié)
轉換結果:011000? ?110111? ?001101? ?100110
補零:--->?00011000? ??00110111? ??00001101? ??00100110
④將補零后的結果轉換成十進制
00011000 => 2^4+2^3 = 24
00110111 => 55
00001101 =>13
00100110 =>38
⑤對照上方的base64編碼表
得到結果為:Y3Nm
ps:值得注意的是,base64編碼過程最后可能碰到不足三位的情況卡儒,這種情況在轉化成6位時用0補位蹦狂,轉換后若六位全為‘空’誓篱,則轉換結果用=號代替。如下圖:
同理 凯楔,字符L(ASCII碼為76)轉換結果為TA==。
以上純屬個人理解锦募。