Base64 編碼原理

2022-01-11 09:44:35 字數 1908 閱讀 5755

1.編碼表

2.原理[漢字不能base64編碼]

base64 編碼就是將字元以3個為一組,因為乙個字元由8個位組成,3*8=24位,然後以順序以6個位拿出,前面補2位,湊成8位--乙個位元組

原位元組不能被3整除的,在後面補 由8個0,構成的單位元組,一般補1個或是2個(0000 0000),這些後面補的位元組不能用base64編碼對應,應該是異常字元,用「=」號替換,

所以,base64編碼一般最後會有1~2個「=」號

示例:

base64編碼前:lucy
l           u           c           y

ascii: 76

11799

1218bit位元組: 01001100

01110101

01100011

01111001

00000000

00000000

6bit位元組: 010011

000111

010101

100011

011110

010000

000000

000000

十進位制: 19721

3530

16 (異常) (異常)

對應編碼: t h v j e q = =

base64編碼後的結果:thvjeq==

3.轉換過程

1

1.//

得到ascii碼

2 ascii =convert.toint32(str).tostring();

32.//

得到二進位制資料

4 binary = convert.tostring(convert.tobyte(ascii),2).padleft(8,'0'

);53.//

擷取6位元組 前面補0

6 bit6 = binary.substring(0, 6);7

84.//

轉換為十進位制

910 position = convert.toint32(bit6,2

);11

125.//

獲取對應的base64碼

1314 c = base64hash.toarray()[position];

基本轉換過程

4.控制台實現

1

static

void main(string

args)

266 previous =binary;

67 i++;68}

6970

if (mod == 0)//

需要補兩個字元(0000 0000 0000 0000)

7182

else

if (mod == 1)//

需要補乙個字元(0000 0000)

8394

console.writeline(sb.tostring());

9596

console.readkey();

97 }

控制台實現

BASE64 編碼原理

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

Base64編碼原理

一 base64編碼原理 1 base64編碼原理簡單介紹 base64要求把每三個8bit的位元組轉換為四個6bit的位元組 3 8 4 6 24 然後把6bit再添兩位高位0,組成四個8bit的位元組,也就是說,轉換後的字串理論上將要比原來的長1 3。編碼原理如下所示 1 base64的編碼都是...

Base64編碼原理

所謂base64,就是說選出64個字元 小寫字母a z 大寫字母a z 數字0 9 符號 再加上作為墊字的 實際上是65個字元 作為乙個基本字符集。然後,其他所有符號都轉換成這個字符集中的字元。具體來說,轉換方式可以分為四步。第一步,將每三個位元組作為一組,一共是24個二進位制位。第二步,將這24個...