繁体   English   中英

如何在 C# 中解密使用 ECDS ( ECDH-ES+A128KW ) 算法加密的 JWE

[英]How to decrypt JWE encrypted with ECDS ( ECDH-ES+A128KW ) algorithm in C#

我一直在寻找 C# 中的一种方法来解密由我的 OpenId Connect 提供商使用 ECDH-ES+A128KW 加密的 JWE 令牌。 我已与 OIDC 提供商共享 EC 公钥,他们向我发送了使用共享公钥加密的 JWE。 我想使用我安全存储的私钥从 JWE 有效负载中解密和提取信息。 一段时间以来,我一直在寻找合适的 C# 解密库。 我的应用程序是一个 .Net 5 应用程序并在 Linux 上运行。 任何帮助高度赞赏。

假设它会帮助某人回答这个问题。 您可以使用以下代码解密 JWS

 using Jose;

 var privateKey = new Jwk(
                crv: encryptionPublicKey.crv,
                x: "y_0F1OlwlIj0VVDbWF2D3JnHqryJK58CExQXqJr3e5s",
                y: "Av4X6ew_hQLmL3qgJJjKcqJcTftpsDk0VLwFLBEzEIE",
                d: "k44uec9XUofhcGUD6mwf-1krn4nQJ5q3TWDwg8wkTFY",
        );
 string decryptedToken = JWT.Decode(token, privateKey);

如果您仍然获得 JWT 作为解密令牌,您可以使用以下方法读取令牌

 JwtSecurityTokenHandler handler = new();
 var jwtSecToken = handler.ReadJwtToken(decryptedIdToken);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM