簡(jiǎn)介
功能:RFC 3548: Base16, Base32, Base64 數(shù)據(jù)編碼瘸彤。轉(zhuǎn)換二進(jìn)制數(shù)據(jù)為適合明文協(xié)議傳輸?shù)?ASCII 序列蓄拣。轉(zhuǎn)換
8bits 為每個(gè)字節(jié)包含 6,5 或 4bits 的有效數(shù)據(jù),比如 SMTP, URL 的一部分或者 HTTP POST 的一部分注整。參考: RFC 3548丙猬。編碼算法不同于 uuencode氧枣。
類型:標(biāo)準(zhǔn)庫(kù)
相關(guān)模塊:uu, binhex, uu, quopri
Base64 是一種基于 64 個(gè)可打印字符來(lái)表示二進(jìn)制數(shù)據(jù)的表示方法熊杨。由于 2 的 6 次方等于 64,所以每 6 個(gè)位元為一個(gè)單元,對(duì)應(yīng)某個(gè)可打印字符曙旭。三個(gè)字節(jié)有 24 個(gè)位元,對(duì)應(yīng)于 4 個(gè) Base64 單元,即 3 個(gè)字節(jié) 需要用 4 個(gè)可打印字符來(lái)表示。它可用來(lái)作為電子郵件的傳輸編碼晶府。在 Base64 中的可打印字符包括字母 A- Z桂躏、a-z、數(shù)字 0-9,這樣共有 62 個(gè)字符,此外兩個(gè)可打印符號(hào)在不同的系統(tǒng)中而不同川陆。之后在 6 位的前面補(bǔ) 兩個(gè) 0,形成 8 位一個(gè)字節(jié)的形式剂习。一些如 uuencode 的其他編碼方法,和之后 binhex 的版本使用不同的 64 字符集來(lái)代表 6 個(gè)二進(jìn)制數(shù)字,但是它們不叫 Base64。
Base64 常用于在通常處理文本數(shù)據(jù)的場(chǎng)合,表示较沪、傳輸鳞绕、存儲(chǔ)一些二進(jìn)制數(shù)據(jù)。包括 MIME 的email,email via MIME,在 XML 中存儲(chǔ)復(fù)雜數(shù)據(jù)尸曼。
Python Base64 模塊提供了 RFC3548 中的數(shù)據(jù)編碼和解碼(轉(zhuǎn)換二進(jìn)制數(shù)據(jù)為適合明文協(xié)議傳輸?shù)腁SCII 序列,如 RFC3548 中指定们何。該標(biāo)準(zhǔn)定義了 Base16,Base32 和 Base64 算法,編碼和解碼的任意二進(jìn)制字符串轉(zhuǎn)換為文本字符串,這樣就可以通過(guò)電子郵件安全發(fā)送,作為網(wǎng)址的一部分,或包含在 HTTP POST 請(qǐng)求中。
Base64 模塊提供兩個(gè)接口控轿。新式接口支持使用三個(gè)字母的編碼和解碼的字符串對(duì)象垂蜗。傳統(tǒng)接口提供了編碼和解碼文件對(duì)象和字符串,但只使用了標(biāo)準(zhǔn)的 Base64 字母。傳統(tǒng)接口這里不做介紹解幽。
base64贴见、 base32、 base16 可以分別編碼轉(zhuǎn)化 8 位字節(jié)為 6 位躲株、 5 位片部、 4 位。 16,32,64 分別表示用多少個(gè)字
符來(lái)編碼霜定。
更多 base64 的資料,參見(jiàn)
http://zh.wikipedia.org/wiki/Base64,http://tools.ietf.org/html/rfc822
http://tools.ietf.org/html/rfc1421
http://tools.ietf.org/html/rfc2045
快速入門(mén)
請(qǐng)看 python 模塊介紹中的實(shí)例:
>>> import base64
>>> encoded = base64.b64encode('data to be encoded')
>>> encoded
'ZGF0YSB0byBiZSBlbmNvZGVk'
>>> data = base64.b64decode(encoded)
>>> data
'data to be encoded'
完整內(nèi)容參見(jiàn) python標(biāo)準(zhǔn)模塊介紹 -Base64: Base64, Base85等數(shù)據(jù)編碼 - 磁石空杯 - 博客園 (cnblogs.com)
參考資料
- 本文涉及的python中文資源 請(qǐng)?jiān)趃ithub上點(diǎn)贊档悠,謝謝!
- python3 官方網(wǎng)址:https://docs.python.org/3/library/base64.html
- python 標(biāo)準(zhǔn)庫(kù) https://pymotw.com/3/base64/index.html