如何在Web Api C#中加密JWT令牌?

时间:2016-06-14 08:51:18

标签: c# encryption jwt

我的Jwt令牌如下所示:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9leGFtcGxlLm9yZyIsImF1ZCI6Imh0dHA6XC9cL2V4YW1wbGUuY29tIiwiaWF0IjoxMzU2OTk5NTI0LCJuYmYiOjEzNTcwMDAwMDAsImV4cCI6MTQwNzAxOTYyOSwianRpIjoiaWQxMjM0NTYiLCJ0eXAiOiJodHRwczpcL1wvZXhhbXBsZS5jb21cL3JlZ2lzdGVyIiwidGVzdC10eXBlIjoiZm9vIn0.UGLFIRACaHpGGIDEEv-4IIdLfCGXT62X1vYx7keNMyc

如果我复制上面的JWT令牌并将其粘贴到https://jwt.io/,那么实际信息就会显示为

Image

我想加密JWT令牌,没有人可以在Web Api中访问我的信息。所以,我想使用任何加密算法,如果是这样,请提供适当的解决方案

这是我的Startup.cs文件,用于授权JWT令牌。

        // Api controllers with an [Authorize] attribute will be validated with JWT

        app.UseJwtBearerAuthentication(
            new JwtBearerAuthenticationOptions
            {
                AuthenticationMode = AuthenticationMode.Active,
                AllowedAudiences = new[] { audience },
                IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[]
                {
                    new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret)
                }
            });

    }

1 个答案:

答案 0 :(得分:2)

为什么您认为某人可以看到此信息是一个问题?如果您使用JWT进行身份验证,那么只有经过身份验证的用户才会获得此令牌,并且可能包含有关此用户的信息。因此,用户能够看到有关他自己的信息并没有什么坏处。

最重要的是,令牌是mac,因此没有人可以伪造它并伪装成另一个用户,这应该足够了。

正如评论中所提到的,无论如何你都应该使用TLS,因此它在转换过程中被加密了。