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位,這樣就還原了。...