首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jwe无法通过jwcrypto正确加密数据

jwe无法通过jwcrypto正确加密数据
EN

Stack Overflow用户
提问于 2020-03-23 16:26:29
回答 1查看 239关注 0票数 0

我需要通过jwe生成加密数据。ruby的实现可以正常工作。但是python实现不能正常工作。

ruby实现

代码语言:javascript
复制
require 'jwe'

key =  OpenSSL::PKey::RSA.new File.read 'public.pem'
payload = {user:"admin"}.to_json
puts JWE.encrypt(payload, key, enc: 'A192GCM')

python实现

代码语言:javascript
复制
from jwt import jwk_from_pem
from jwcrypto import jwe,jwk
from jwcrypto.common import json_encode
import json

with open("public.pem", "rb") as f:
    key = jwk.JWK.from_pem(f.read())
key = key.public()
token = jwe.JWE(u'{user:"admin"}', json_encode({"alg":"RSA-OAEP","enc":"A192GCM"}))
token.add_recipient(key)
result = token.serialize()
result = json.loads(result)
print(result["protected"] + "." + result["encrypted_key"])

我已经参考了jwcrypto的例子。但是生成的令牌不正确。

EN

回答 1

Stack Overflow用户

发布于 2020-03-23 16:53:15

已修复。我应该使用compact而不是手动追加数据。

代码语言:javascript
复制
from jwt import jwk_from_pem
from jwcrypto import jwe,jwk
from jwcrypto.common import json_encode

with open("public.pem", "rb") as f:
    key = jwk.JWK.from_pem(f.read())
key = key.public()
token = jwe.JWE('{"user":"admin"}', json_encode({"alg":"RSA-OAEP","enc":"A192GCM"}))
token.add_recipient(key)
result = token.serialize(compact=True)
print(result)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60810025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档