python中base64編碼與解碼

引言:python

  在一些項目中,接口的報文是經過base64加密傳輸的,因此在進行接口自動化時,須要對所傳的參數進行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=
相關文章
相關標籤/搜索