1. 程式人生 > >python2,python3中的base64編碼解碼

python2,python3中的base64編碼解碼

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=