python2,python3中的base64編碼解碼
阿新 • • 發佈:2018-12-10
Base64編碼是一種“防君子不防小人”的編碼方式。廣泛應用於MIME協議,作為電子郵件的傳輸編碼,生成的編碼可逆,後一兩位可能有“=”,生成的編碼都是ascii字元。
- 優點:速度快,ascii字元,肉眼不可理解
- 缺點:編碼比較長,非常容易被破解,僅適用於加密非關鍵資訊的場合
python2中進行Base64編碼和解碼
import base64
s = ‘我是字串’
a = base64.b64encode(s)
print a
ztLKx9fWt/u0rg==print base64.b64decode(a)
我是字串
python3不太一樣:因為3.x中字元都為unicode編碼,而b64encode函式的引數為byte型別,所以必須先轉碼。
import base64
encodestr = base64.b64encode('abcr34r344r'.encode('utf-8'))
print(encodestr)
列印結果為
b'YWJjcjM0cjM0NHI='
結果和我們預想的有點區別,我們只想要獲得YWJjcjM0cjM0NHI=,而字串被b’'包圍了。
這時肯定有人說了,用正則取出來就好了。。。別急。。。
b 表示 byte的意思,我們只要再將byte轉換回去就好了。。。原始碼如下
import base64
encodestr = base64.b64encode('abcr34r344r'.encode('utf-8'))
print(str(encodestr,'utf-8'))
# 列印結果為
YWJjcjM0cjM0NHI=