本篇 ShengYu 介紹 Python base64 編碼用法與範例,
以下的 Python base64 用法與範例將分為這幾部分,
- Python base64 encode 編碼用法
- Python base64 decode 解碼用法
- 為什麼 python base64 跟 linux base64 的結果輸出不一樣?
那我們開始吧!
Python base64 encode 編碼用法
Python base64 編碼要使用 base64.b64encode()
,base64.b64encode()
是傳入 bytes object,所以輸入是字串的話會需要先透過 encode('UTF-8')
轉成 bytes object,base64.b64encode()
回傳的結果是 bytes object,範例如下,1
2
3
4
5
6
7
8#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import base64
s = 'Hello World'
b = s.encode('UTF-8')
bytes_encode = base64.b64encode(b)
print(bytes_encode)
Python base64 編碼後輸出如下,1
b'SGVsbG8gV29ybGQ='
上述範例你也可以簡化成這樣寫,1
print(base64.b64encode('Hello World'.encode('UTF-8')))
如果資料來源已經是 bytes object 不是 str,就可以直接傳入 base64.b64encode()
使用,1
print(base64.b64encode(b'Hello World'))
編碼後輸出同上。
如果要將編碼後的 b'SGVsbG8gV29ybGQ='
byte 轉換成 ASCII 字串的話可以用 decode('UTF-8')
像這樣寫,1
print(bytes_encode.decode('UTF-8'))
將 byte 轉換成 ASCII 字串的輸出結果如下,1
SGVsbG8gV29ybGQ=
Python base64 decode 解碼用法
Python base64 解碼的話要使用 base64.b64decode()
,base64.b64decode()
可以傳入 bytes object 也可以傳入 ASCII string,回傳的結果都是 bytes object,所以會需要透過 decode('UTF-8')
轉成字串,這邊我們將上述範例編碼後的輸出當成本範例的輸入,範例如下,1
2
3
4
5
6#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import base64
print(base64.b64decode(b'SGVsbG8gV29ybGQK').decode('UTF-8'))
print(base64.b64decode('SGVsbG8gV29ybGQK').decode('UTF-8'))
Python base64 解碼後輸出如下,1
Hello World
為什麼 python base64 跟 linux base64 的結果輸出不一樣?
在 stackoverflow 這篇有在討論為什麼 python base64 指令跟 linux base64 的輸出不一樣,理論上用不同工具做 base64 轉換應該要得到相同結果,結果發現是在用 echo 指令時會加上換行符號 \n
,解決方式就是用 echo -n
不要加上換行符號。
以上就是 Python base64 編碼用法與範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!
其它相關文章推薦
Python 新手入門教學懶人包