因緣際會需要串某個 JSON API ,然後跟加密這方面實在是不熟,而對方給的範例又不是 Python 的所以花了很多時間研究 JOSE 。後來找到了 python-jose ,一開始也因為不熟悉浪費了一點時間,這邊記錄一下。
後面的 []
請不要隨便省略,那個是順便安裝 jose backend 的,有不少 python-jose 的 backend 可以選擇,但我預設的就夠用了。
pip install python-jose[cryptography]
下面是一個加密本文,使用 direct 演算法跟 A128GCM 加密演算法的範例。
import json
form jose import jwe
key = bytes([255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]) # 對方發行的 128 bits key
contents = {
'user': 'k9way'
}
payload = jwe.encrypt(json.dumps(contents), key, algorithm='dir', encryption='A128GCM')
# print(payload)
# print(jwe.decrypt(payload, key))
先記錄到這邊。