Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试使用Python库(使用JAVA库创建)解密令牌时出错_Java_Python_Algorithm_Encryption_Jwt - Fatal编程技术网

尝试使用Python库(使用JAVA库创建)解密令牌时出错

尝试使用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'%

已具有解密密钥和签名密钥。。只需要知道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'% 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解密时失败