基礎演算法 base64簡介

2021-09-12 06:33:09 字數 1466 閱讀 7642

base64是一種用64個字元來表示任意二進位制資料的方法。

base 64編碼可以將任意一組位元組轉換為較長的常見文字字串行,從而可以合法地作為首部字段值。base 64編碼將使用者輸入或二進位制資料,打包成一種安全格式,將其作為http首部欄位的值傳送出去,而無須擔心其中包含會破壞http分析程式的冒號、換行符或二進位制值。

base 64編碼將乙個8位子節序列拆散為6位的片段,並為每個6位的片短分配乙個字元,這個字元是base 64字母表中的64個字元之一。這64個字元中包括大小寫字母、數字、+和/,同時還包括了特殊字元=。具體內容如下:

value

encoding

value

encoding

value

encoding

value

encoding0a

17r34i

51z1b

18s35j

5202c

19t36k

5313d

20u37l

5424e

21v38m

5535f

22w39n

5646g

23x40o

5757h

24y41p

5868i

25z42q

5979j

26a43r

60810k

27b44s

61911l

28c45t

62+12m

29d46u

63/13n

30e47v

------14o

31f48w

(pad) =

---15p32

g49x---

---16q33

h50y---

--- 以「hello!」為例,他的ascii對應關係如下:

可知 hello! 的base64編碼結果為 s**sbg8h ,原始字串長度為6個字元,編碼後長度為8個字元,每3個原始字元經base64編碼成4個字元,編碼前後長度比4/3,這個長度比很重要 - 比原始字串長度短,則需要使用更大的編碼字符集,這並不我們想要的;長度比越大,則需要傳輸越多的字元,傳輸時間越長。base64應用廣泛的原因是在字符集大小與長度比之間取得乙個較好的平衡,適用於各種場景。

base64編碼是每3個原始字元編碼成4個字元,如果原始字串長度不能被3整除,需要使用0值來補充原始字串:

標準base64編碼通常用 = 字元來替換最後的 a,即編碼結果為 s**sbg8hiq==。因為 = 字元並不在base64編碼索引表中,其意義在於結束符號,在base64解碼時遇到 = 時即可知道乙個base64編碼字串結束。

BASE64編碼簡介

base64是一種常用的可逆編碼形式,常用於把二進位制編碼轉換為字元形式的資料。編碼後的字串包含a z a z 0 9 共64個字元。64個字元需要用6位來表示,從0開始表示成數字0 63。其實共有65個字元,是填充字元,後面會說到。碼值字元 碼值字元 碼值字元 碼值字元0a 16q32g 48w1...

Base64編碼簡介

本文介紹基於rfc4648的base64編碼格式,關於如何使用python中的base64模組快速進行編碼,請參考這裡。rfc4648介紹了base64 32 16編碼機制,同時廢止了rfc3548。相關的資料和標準有 rfc2045定義了mime中的base64傳輸編碼,rfc4880定義了ope...

Base64編碼演算法

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