JWT在python中加密有效载荷?(JWE)

根据RFC 7516,应该可以加密称为JWE的有效负载/声明。

是否有任何支持该功能的python库?

我已经检查了PyJWT,python-jose和jwcrypto,但它们都只提供了HS256(JWS)签名的示例。

抱歉,如果这是完全显而易见的,但是在涉及加密的事情上,我要格外谨慎。

回答:

Jose和jwcrypto库都可以执行JWE。

对于jose:

claims = {

'iss': 'http://www.example.com',

'sub': 42,

}

pubKey = {'k':\

'-----BEGIN PUBLIC KEY-----\n\

-----END PUBLIC KEY-----'

}

# decrypt on the other end using the private key

privKey = {'k':

'-----BEGIN RSA PRIVATE KEY-----\n'+\

'-----END RSA PRIVATE KEY-----'

}

encJwt = jose.encrypt(claims, pubKey)

serJwt = jose.serialize_compact(encJwt)

decJwt = jose.decrypt(jose.deserialize_compact(serJwt), privKey)


对于jwcrypto:

# algorithm to use

eprot = {'alg': "RSA-OAEP", 'enc': "A128CBC-HS256"}

stringPayload = u'attack at dawn'

E = jwe.JWE(stringPayload, json_encode(eprot))

E.add_recipient(pubKey)

encrypted_token = E.serialize(compact=True)

E = jwe.JWE()

E.deserialize(encrypted_token, key=privKey)

decrypted_payload = E.payload

以上是 JWT在python中加密有效载荷?(JWE) 的全部内容, 来源链接: utcz.com/qa/409775.html

回到顶部