下面簡單介紹Base64算法的原理,由於代碼太長就不在此貼出
Base64要求把每三個8Bit的字節轉換為四個6Bit的字節(3*8 = 4*6 = 24),然後把6Bit再添兩位高位0,組成四個8Bit的字節,也就是說,轉換後的字符串理論上將要比原來的長1/3。
轉換後,我們用壹個碼表來得到我們想要的字符串(也就是最終的Base64編碼),這個表是這樣的:
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v
14 O 31 f 48 w (pad) =
15 P 32 g 49 x
16 Q 33 h 50 y
原文的字節最後不夠3個的地方用0來補足,轉換時Base64編碼用=號來代替。這就是為什麽有些Base64編碼會以壹個或兩個等號結束的原因,但等號最多只有兩個。
舉壹個例子,abc經過Base64編碼以後的結果是YWJj.
發郵件的時候所寫的信息自動在後臺轉換然後傳輸...
參考資料: