尝试使用Python库(使用JAVA库创建)解密令牌时出错
已具有解密密钥和签名密钥。。只需要知道python中的哪个库是解码此Java算法创建的JWT令牌的正确库 JWE加密:算法:RSA_OAEP,加密A128GCM 令牌签名:算法:RS256 解密.py文件:尝试使用Python库(使用JAVA库创建)解密令牌时出错,java,python,algorithm,encryption,jwt,Java,Python,Algorithm,Encryption,Jwt,已具有解密密钥和签名密钥。。只需要知道python中的哪个库是解码此Java算法创建的JWT令牌的正确库 JWE加密:算法:RSA_OAEP,加密A128GCM 令牌签名:算法:RS256 解密.py文件: from jwcrypto import jwt, jwk k = {"n": G_DECRYPTION_KEY, "kty": "RSA", "e":"A128GCM"} #, "alg":"RS256"} # "e":"AQAB" print 'k : %s \n'%
from jwcrypto import jwt, jwk
k = {"n": G_DECRYPTION_KEY, "kty": "RSA", "e":"A128GCM"} #, "alg":"RS256"} # "e":"AQAB"
print 'k : %s \n'% k
key = jwk.JWK(**k)
print 'key : %s \n'% key
decrypted_key = jwt.JWT(key=key, jwt= g_token)
print 'decrypted_key : %s \n'% decrypted_key
signed_key = jwt.JWT(key=key, jwt=decrypted_key.claims)
print 'signed_key : %s'% signed_key
signed_key.claims
print 'signed_key.claims %s
"
我得到的错误是:
decrypted_key = jwt.JWT(key=key, jwt= g_token)
File "C:\Python27\lib\site-packages\jwcrypto\jwt.py", line 204, in __init__
self.deserialize(jwt, key)
File "C:\Python27\lib\site-packages\jwcrypto\jwt.py", line 460, in deserialize
self.token.deserialize(jwt, key)
File "C:\Python27\lib\site-packages\jwcrypto\jwe.py", line 472, in deserialize
self.decrypt(key)
File "C:\Python27\lib\site-packages\jwcrypto\jwe.py", line 399, in decrypt
'key' + repr(self.decryptlog))
InvalidJWEData: No recipient matched the provided key["Failed: [KeyError('p',)]"]
确保您的解密密钥与加密密钥相同。我相信这两个密钥都应该是
jwk.jwk
的jwcrypto
包中的jwk.jwk
的一个实例。您应该检查g_令牌
看起来是否正常。感谢您的响应,我确保g_令牌有效,并且在使用Java解密时也能工作,只是在使用Python解密时失败