Python base64 編碼用法與範例

本篇 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 新手入門教學懶人包