python模塊之base64

base64模塊提供了在二進制數據和可打印ASCII字符間編解碼的功能,包括RFC3548中定義的Base16, Base32, Base64, Ascii85, Base85等編碼。html

RFC3548中定義的編碼適用於將二進制數據編碼後,在郵件、URL、HTTP POST請求中安全地傳遞數據。編碼算法不一樣於uuencode program??python

python3.4及以後的版本支持兩種接口:算法

  • 將類字節對象編碼爲由ASCII可打印字符表示的bytes
  • 將類字節對象或純ASCII字符組成的Unicode字符串解碼爲bytes

base64.b64encode(s, altchars=None)

對類字節對象s進行Base64編碼,返回編碼後的字節序列。安全

可選參數altchars必須是2個長度的類字節對象,分別替換編碼結果中的'+'和'/'字符。可應用於生成安全的URL或文件系統Base64編碼場景中。編碼

base64.b64decode(s, altchars=None, validate=False)

對使用Base64編碼生成的類字節對象或純ASCII字符組成的Unicode字符串s進行Base64解碼,返回解碼後的字節序列。url

可選參數altchars必須是2個長度的類字節對象或純ASCII字符組成的Unicode字符串,分別將s中對應的字符替換爲'+'和'/'。spa

若是s未能正確填充(s的長度必須是4的整數倍數),拋出binascii.Error.code

若是validate的值是False,s中的非法字符(既不是標準base-64碼錶中的字符,又不是某些容許的可選字符)將在填充檢查前丟棄。若是validate的值是True,s存在非法字符將拋出binascii.Error.htm

base64.standard_b64encode(s)

對類字節對象s進行標準Base64編碼,返回編碼後的字節序列。等同於b64encode(s)對象

base64.standard_b64decode(s)

對類字節對象或純ASCII字符組成的Unicode字符串s進行標準Base64解碼,返回解碼後的字節序列。等同於b64decode(s)

base64.urlsafe_b64encode(s)

對類字節對象s進行安全的URL及文件系統Base64編碼,替換標準Base64編碼中的'+'爲'-', '/'爲'_',返回編碼後的字節序列

base64.urlsafe_b64decode(s)

對類字節對象或純ASCII字符組成的Unicode字符串s進行URL及文件系統Base64解碼,返回解碼後的字節序列


base64.b32encode(s)
base64.b32decode(s, casefold=False, map01=None)
base64.b16encode(s)
base64.b16decode(s, casefold=False)
base64.a85encode(b, *, foldspaces=False, wrapcol=0, pad=False, adobe=False)
base64.a85decode(b, *, foldspaces=False, adobe=False, ignorechars=b' \t\n\r\v')
base64.b85encode(b, pad=False)
base64.b85decode(b)

基於RFC2045的舊接口

  • base64.decode(input, output)
  • base64.decodebytes(s)
  • base64.encode(input, output)
  • base64.encodebytes(s)
相關文章
相關標籤/搜索