簡體   English   中英

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

[英]How can I encrypt JWT Token in Web Api C#?

我的Jwt令牌如下所示:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9leGFtcGxlLm9yZyIsImF1ZCI6Imh0dHA6XC9cL2V4YW1wbGUuY29tIiwiaWF0IjoxMzU2OTk5NTI0LCJuYmYiOjEzNTcwMDAwMDAsImV4cCI6MTQwNzAxOTYyOSwianRpIjoiaWQxMjM0NTYiLCJ0eXAiOiJodHRwczpcL1wvZXhhbXBsZS5jb21cL3JlZ2lzdGVyIiwidGVzdC10eXBlIjoiZm9vIn0.UGLFIRACaHpGGIDEEv-4IIdLfCGXT62X1vYx7keNMyc

如果我復制上面的JWT令牌並將其粘貼到https://jwt.io/中,那么實際信息將像這樣顯示

圖片

我想加密JWT令牌,沒有人可以訪問Web Api中的信息。 因此,我想使用任何加密算法,如果可以,請提供適當的解決方案

這是我的授權JWT令牌的Startup.cs文件。

        // 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)
                }
            });

    }

您為什么確切認為有人可以看到此信息是一個問題? 如果您使用JWT進行身份驗證,則只有剛剛通過身份驗證的用戶才能獲得此令牌,並且該令牌可能包含有關該用戶的信息。 因此,對於用戶而言,能夠看到有關他自己的信息不會有任何傷害。

最重要的是,令牌被Maceded了,因此沒有人可以偽造它並假裝自己是另一個用戶,這應該足夠了。

就像評論中提到的那樣,您還是應該使用TLS,因此在過渡過程中會對其進行加密。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM