python中base64編碼與解碼

引言:

  在一些項目中,接口的報文是通過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=
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章