4
根据RFC 7516,应该可以加密称为JWE的有效负载/声明。JWT加密python中的有效载荷? (JWE)
是否有任何支持它的python库?
我已经检查了PyJWT,python-jose和jwcrypto,但他们都只是用HS256
(JWS)签名的示例。
对不起,如果这是完全明显的,但涉及到加密的事情,我特别谨慎。
根据RFC 7516,应该可以加密称为JWE的有效负载/声明。JWT加密python中的有效载荷? (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
你能/有人请添加其中一个现有的RSA密钥导入到jwcrypto彻底的例子吗?我一直在尝试,但不断收到错误。 – kilokahn