问题标签 [jwe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 如何将数据附加到加密的 JWT 令牌 (JWE)?
我有以下场景:一个使用 Node.js REST API 的 Angular 4 Web 应用程序,它使用公司范围的 REST 身份验证服务。
此 REST 身份验证服务返回一个 JWE 令牌,我可以使用node-jose库对其进行解密,然后我的 Node.js API 检查用户的角色以确定是否允许他使用 Web 应用程序。
根据用户角色,Angular Web 应用程序可能允许/拒绝访问某些路由,因此我使用Guard routes
.
所以,我的问题是:是否可以将用户角色附加到原始 JWE 令牌并将其返回到 Angular Web 应用程序同时仍然保持有效?
token 的请求并返回到 web app 就是这样的:
javascript - 如何在节点 js 中生成和验证 JWE?
我尝试了下面的代码来创建 RSA-OAEP 和 A128GCM JWE 生成器和验证器。它与节点 js 一起使用,即加密声明并生成 jwe 并解密同样给我声明。但它不适用于其他客户端,例如 nimbusds jose、jose4j。所以可以肯定的是我错过了一些东西。
我通过阅读https://www.rfc-editor.org/rfc/rfc7516来做到这一点
index.js
ASCII.js
使用以下命令生成公钥和私钥
openssl genrsa -out ./privkey.pem 2048
openssl pkcs8 -topk8 -inform pem -in ./privkey.pem -outform pem -nocrypt -out ./privkey.pkc8.pem
openssl rsa -in ./privkey.pkc8.pem -pubout -out ./pubkey.pem
请帮助我修复此代码。
这是我的公钥
生成的 JWE
javascript - 我们如何仅使用 nodejs Crypto 库来实现 JWE?
这就是我现在为生成 JWT 令牌所做的工作。如何在不使用任何其他 npde 包的情况下仅使用加密库生成 JWE 令牌?
node.js - 如何使用 node-jose 生成加密的 JWE
我将 node-jose v0.11.0 ( https://www.npmjs.com/package/node-jose ) 用于 JWK 和 JWE 操作。我有一个 JWK 格式的 RSA 密钥,我可以将其加载到 JWK 密钥存储中并再次提取。但是,当我尝试加密任何东西时,我会进入“error2”、“不支持的算法”。RSA怎么可能是不受支持的算法?
输出如下:
更新我在实际代码中挖掘了一下,发现在“basekey.js”中抛出了错误,因为库的算法是空的。
这里的输出是:
java - 如何在 C# 中解密 JWE 源(使用 RSA1_5 A256CBC-HS512 加密)?
我正在实现一个客户端,以通过密码学方式与某个服务器进行通信。客户端向服务器发送带有公共 RSA 密钥的获取请求。文档“如何与服务器通信”包含带有 java 代码的示例。以下代码生成公钥:
我需要在 C# 中实现我的客户端。我找到了如何在 C# 中执行相同操作的方法:
客户端使用如何调整 C# 的公钥/私钥 RSA 密钥以在 Java 中使用它们的参数和解决方案?没关系。客户端可以生成可以通过服务器验证的密钥。结果,我得到了加密的响应并试图解密它。
但是此代码引发以下异常:
System.Security.Cryptography.CryptographicException: '要解密的数据超过了这个 256 字节模数的最大值。'
responseContent是长度为 250996 的字节数组。正如我所见,无法通过上述方式解密响应内容。
从文档中,我知道
另外,我有一个示例如何在 java 中解密响应:
我认为 rsa.Decrypt 是上面代码的模拟。但正如我播种的那样 - 不是。经过一番研究,我发现我的回复是 JWE 来源。基于https://www.rfc-editor.org/rfc/rfc7516,我将回复拆分为由“。”分隔的部分。并从 base64url 解码它们中的每一个。结果我有:
- 标头(即 JSON:{"enc":"A256CBC-HS512", "alg":"RSA1_5"})
- 加密密钥(大小 256 字节)
- 初始化向量(大小 16 字节)
- 密文(大小 1844688 字节)
- 身份验证标签(大小 32 字节)
我认为主要内容在Cipertext中,我需要对其进行解密。但我不知道如何因为Cipertext大小超过 256 个字节,我不能使用 rsa.Decrypt。
当源的大小超过 RSA 密钥时如何解密源?
c - 使用 cjsoe 的 JSON 网络加密
有关如何使用cjose库和简单 JSON 的任何帮助。来自ietf-jose的 JSON 示例
有人可以给我一些指示吗?谢谢
php - Spomkylabs 何塞 PHP
我需要使用内容加密密钥 + IV 解密我的 cipherText,并根据 AAD 验证它并使用 A128CBC-HS256 进行标记。我发现这个图书馆正在这样做。但是,我会使用它吗?我搜索了其他 jwe 库,但它们只解密密文而不使用 aad 和标签进行验证。
我已经尝试实现该库,但我遇到了错误,并且文档对像我这样的新手没有帮助。
我也尝试过 php 的 openssl_decrypt,但它只适用于 GCM 和 CCM,不适用于 CBC。