python執行個體27[base64]

來源:互聯網
上載者:User

一 base64

 Base64是一種基於64個可列印字元來表示位元據的表示方法。由於2的6次方等於64,所以每6個位元為一個單元,對應某個可列印字元。三個位元組有24個位元,對應於4個Base64單元,即3個位元組需要用4個可列印字元來表示。它可用來作為電子郵件的傳輸編碼。在Base64中的可列印字元包括字母A-Z、a-z、數字0-9 ,這樣共有62個字元,此外兩個可列印符號在不同的系統中而不同。編碼後的資料比未經處理資料略長,為原來的4/3。

Base64常用於在通常處理文本資料的場合,表示、傳輸、儲存一些位元據(或不可列印的字串)。包括MIME的email,email via MIME, 在XML中儲存複雜資料.在郵件中的用途:在MIME格式的電子郵件中,base64可以用來將binary的位元組序列資料編碼成ASCII字元序列構成的文本。使用時,在傳輸編碼方式中指定base64。使用的字元包括大小寫字母各26個,加上10個數字,和加號“+”,斜杠“/”,一共64個字元,等號“=”用來作為尾碼用途。在URL中的用途:標準的Base64並不適合直接放在URL裡傳輸,因為URL編碼器會把標準Base64中的“/”和“+”字元變為形如“%XX”的形式,而這些“%”號在存入資料庫時還需要再進行轉換,因為ANSI SQL中已將“%”號用作萬用字元。為解決此問題,可採用一種用於URL的改進Base64編碼,它不在末尾填充'='號,並將標準Base64中的“+”和“/”分別改成了“*”和“-”,這樣就免去了在URL編解碼和資料庫儲存時所要作的轉換,避免了編碼資訊長度在此過程中的增加,並統一了資料庫、表單等處物件識別碼的格式。另有一種用於Regex的改進Base64變種,它將“+”和“/”改成了“!”和“-”,因為“+”,“*”在Regex中都可能具有特殊含義。

 

二 python中使用

C:\Python27>pythonPython 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> import base64>>> str = 'haha'>>> base64.b64encode(str)'aGFoYQ=='>>> base64.b64decode('aGFoYQ==')'haha'

三 其他的方法

base64.b64encode(s[, altchars])base64.b64decode(s[, altchars]) altchars為可選的參數,用來替換+和/的一個兩個長度的字串。base64.urlsafe_b64encode(s) base64.urlsafe_b64decode(s) 此方法中用-代替了+,用_代替了/。base64.b32encode(s)base64.b32decode(s[, casefold[, map01]]) base64.b16encode(s) 

base64.b16decode(s[, casefold])  

 

完! 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.