Jwt解密及.net core获取appsettings.json配置信息详解

上一篇文章讲了下JTW加密机制,这期给大家说说怎么解密,以及获取appsettings.json配置信息。

1、获取appsettings.json配置信息

创建De­code­Jwt类

  public static IConfiguration Configuration { get; set; }
        static DecodeJwt()
        {
            //ReloadOnChange = true 当appsettings.json被修改时重新加载            
            Configuration = new ConfigurationBuilder()
            .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true 
})
            .Build();
        }

2、解析Jwt密文

  // 用于解码token 用到jose-jwt包
        public static string decode(string tokenToDecode)
        {
            string token = Jose.JWT.Decode(
                tokenToDecode,
                /*DecodeJwt.Configuration["Jwt:Secret"] 为在appsettings.json中配置的信息*/
Encoding.UTF8.GetBytes(DecodeJwt.Configuration["Jwt:Secret"]),
                JweAlgorithm.PBES2_HS512_A256KW,
                JweEncryption.A128CBC_HS256,		// 加密算法
                null
            );
            Console.WriteLine(token);
            return token;
        }

解析下来的格式如下:

3、完整代码如下:

using Jose;
using Microsoft.Extensions.Configuration;
using System.Text;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.Json;
namespace JwtServer.Core
{
    public class DecodeJwt
    {
        public static IConfiguration Configuration { get; set; }
        static DecodeJwt()
        {
            //ReloadOnChange = true 当appsettings.json被修改时重新加载            
            Configuration = new ConfigurationBuilder()
            .Add(new JsonConfigurationSource { Path = "appsettings.json", ReloadOnChange = true 
 })
            .Build();
        }

        // 用于解码token 用到jose-jwt包
        public static string decode(string tokenToDecode)
        {
            string token = Jose.JWT.Decode(
                tokenToDecode,
                Encoding.UTF8.GetBytes(DecodeJwt.Configuration["Jwt:Secret"]),
                JweAlgorithm.PBES2_HS512_A256KW,
                JweEncryption.A128CBC_HS256,		// 加密算法
                null
            );
            Console.WriteLine(token);
            return token;
        }

    }
}

为您推荐

发表评论

您的电子邮箱地址不会被公开。