在C中解密JWT令牌#

在C中解密JWT令牌#,jwt,access-token,bearer-token,Jwt,Access Token,Bearer Token,您好,我想看看它们是否有任何类似于JOSE-JWT的JWT令牌库,在运行时也可以在Linux机器上运行 这就是我目前拥有的代码,它解密令牌并获取我需要的东西 private IamTokenDecrypted DecryptToken(string idToken) { byte[] key = WebEncoders.Base64UrlDecode(_ssoEncryptionKeyInfo.JsonWebKey.K);

您好,我想看看它们是否有任何类似于JOSE-JWT的JWT令牌库,在运行时也可以在Linux机器上运行

这就是我目前拥有的代码,它解密令牌并获取我需要的东西

        private IamTokenDecrypted DecryptToken(string idToken)
        {
             byte[] key = WebEncoders.Base64UrlDecode(_ssoEncryptionKeyInfo.JsonWebKey.K);
             string json = Jose.JWT.Decode(idToken, key, JweAlgorithm.DIR, JweEncryption.A256GCM);
             var result = Jose.JWT.Payload(json);
             var iamTokenDecrypted = JsonConvert.DeserializeObject<IamTokenDecrypted>(result);
             return iamTokenDecrypted;
        }
private iamtoken解密的decryptedtoken(字符串idToken)
{
byte[]key=WebEncoders.Base64UrlDecode(_ssonencryptionkeyinfo.JsonWebKey.K);
字符串json=Jose.JWT.Decode(idToken、key、JweAlgorithm.DIR、JweEncryption.A256GCM);
var result=Jose.JWT.Payload(json);
var iamTokenDecrypted=JsonConvert.DeserializeObject(结果);
返回已解密的数据;
}

我有一个安全密钥,正如您所看到的,其中有一些加密,请使用官方库:另外,请注意,JWT实际上不是Base64编码的:它是Base64Url编码字符串的点分隔元组(三元组)。Base64Url编码与Base64编码的不同之处在于使用了不同的字母表。@Dai我不想看起来像个白痴,但你能给我举个例子吗。我整天都在想这个问题你到底想做什么?(您使用的是OIDC/OAuth2还是其他?)。在大多数分布式身份验证系统(如OIDC)中,客户端(表面上)不需要内省它们的
access\u令牌
:它们应该被视为不透明字符串(OIDC也不要求
access\u令牌
成为JWT)。如果您正在编写一个资源服务(它确实需要解码JWT
access\u token
),那么每一个现代的.NET web框架都内置了JWT处理功能:无需自己动手。我正在尝试从标记中提取数据,用于其他内容,而不一定是我自己