Base64 編碼 規則

2021-08-30 07:36:38 字數 1357 閱讀 1882

base64編碼要求把3個8位位元組(3*8=24) 轉化為4個6位的位元組(4*6=24) ,之後在6位的前面補兩個0 ,形成8位乙個位元組的形式。 

例如字串「張3」 :

11010101 11000101 00110011 

轉換後:

00110101 00011100 00010100 00110011 

用十進位制表示即為:53 34 20 51 

這個並不是最終的結果,還需要根據base64的編碼表查詢出轉換後 的值。

下面就是base64編碼表:

table 1: the base64 alphabet 

value encoding value encoding value encoding value encoding 

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 (pad) = 

14 o 31 f 48 w 

15 p 32 g 49 x 

16 q 33 h 50 y 

以上一共是64個編碼,這也是base64名稱的由來,編碼的編號對應的是得出的新位元組的十進位制值 。

因此,上例中字串「張3」經過編碼後就成了字串「1iuz」了。 

當**量不是3的整數倍時 ,**量/3的餘數自然就是2或者1。

轉換的時候,結果不夠6位的用0來補上相應的位置,之後再在6位的前面補兩個0。轉換完空出的結果就用就用「=」來補位。譬如結果若最後餘下的為2個位元組的「張」: 

字串「張」 

11010101 hex:d5 11000101 hex:c5 

00110101 00011100 00010100 

十進位制53 十進位制34 十進位制20 pad 

字元』1』 字元』i』 字元』u』 字元』=』 

這樣,最後的2個位元組被整理成了「1iu=」。

同理,若原**只剩下乙個位元組,那麼將會新增兩個「=」 。

只有這兩種情況,所以,base64的編碼最多會在編碼結尾有兩個「=」

完~原文:

base64編碼 動畫演示 Base 64 編碼

base64 是一種十分流行的編碼方式,僅僅使用 64 個字元加等號 就可以以文字的形式表示所有的二進位制資料了,因為它能夠把二進位制格式通過編碼轉換成可見字元,所有我們就可以通過的把二進位制格式比如,檔案等通過 base64 編碼然後通過文字的形式共享出去,是不是很神奇呀。把輸入的資料轉換成 二進...

Base64編碼演算法

base64要求把每三個8bit的位元組轉換為四個6bit的位元組 3 8 4 6 24 然 後把6bit再添兩位高位0,組成四個8bit的位元組,也就是說,轉換後的字串理 論上將要比原來的長1 3。轉換後,我們用乙個碼表來得到我們想要的字串 也就是最終的base64編碼 這個表是這樣的 0 a 1...

Base64編碼演算法

base64 construe aaaaaaaa bbbbbbbb cccccccc dddddddd ffffffff 3byte to 4byte is encode 00aaaaaa 00aabbbb 00bbbbcc 00cccccc 3byte newlen 4 00aaaaaa 00aa...