base64編碼 動畫演示 Base 64 編碼

2021-10-11 06:04:38 字數 1287 閱讀 3135

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

把輸入的資料轉換成 二進位制的形式

每 3 個 8bit 為一組拆分為 4 個 6bit 8*3=6*4=24

拆分後的 6bit 的高位補兩個 0 組成新的 8bit

把新的 8bit 轉化為 10進製,然後查表得到最終的字串

如果最後不夠 3 個 8bit,分兩種情況

有 2 個 8bit 差 1 個 8bit,由於 8*2=6+6+4=16,可以拆出來 2 個 6bit 和 乙個不完整的 4bit,base64 編碼規定給不足 6bit 的差幾個 bit 補幾個0,4bit 低位補 2 個0,組成了 6bit,由於一共需要 4個 6bit,前面一共產生了 3 個,還差 1 個,base64 編碼規定 差幾個 6bit 補幾個 '=',這裡差乙個,所以在最後補乙個 =,這也是為什麼有時候能看到 base64 最後以等號結束

有 1 個 8bit 差 2 個 8bit,由於 8=6+2,可以拆出來 1 個 6bit 和乙個不完整的 2bit,先給 2bit 低位補 4 個 0 組成 6bit,然後還差 2 個 6bit 組成 4 個 6bit,因此在最後添兩個 =

base64的編碼表如下:

下面來舉例說明:

有乙個字串」abcd」

a         b         c        dascii:    0x61      0x62      0x63     0x648bit:  01100001   01100010  01100011 0110 01006bit:  011000   010110  001001 100011  011001 000000 = =十進位制:  24       22      9       35     25      0查碼表得: y        w      j       j      z       a   =  =最終結果:ywjjza==
看這個動畫演示吧:

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...

BASE64 編碼原理

unit ubase64 編碼原理 將3個位元組轉換成4個位元組 3 x 8 24 4x6 先讀入3個位元組,每讀乙個位元組,左移8位,再右移四次,每次6位,這樣就有4個 位元組了。解碼原理 將4個位元組轉換成3個位元組,先讀入4個6位 用或運算 每次左 移6位,再右移3次,每次8位,這樣就還原了。...