因缘际会需要串某个 JSON API ,然后跟加密这方面实在是不熟,而对方给的範例又不是 Python 的所以花了很多时间研究 JOSE 。后来找到了 python-jose ,一开始也因为不熟悉浪费了一点时间,这边记录一下。
安装
后面的 []
请不要随便省略,那个是顺便安装 jose backend 的,有不少 python-jose 的 backend 可以选择,但我预设的就够用了。
pip install python-jose[cryptography]
範例
下面是一个加密本文,使用 direct 演算法跟 A128GCM 加密演算法的範例。
import jsonform jose import jwekey = bytes([255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255]) # 对方发行的 128 bits keycontents = { 'user': 'k9way' }payload = jwe.encrypt(json.dumps(contents), key, algorithm='dir', encryption='A128GCM')# print(payload)# print(jwe.decrypt(payload, key))
先记录到这边。