JSON Web Tokens简单学习

Posted York

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON Web Tokens简单学习相关的知识,希望对你有一定的参考价值。

 

 

JWT用于加密生成安全认证的令牌,存储登录验证成功的部分用户信息

  一、安装JWT

    

 

  二、加密 解密 代码

  

 /*存储在加密字符串的信息*/
            var payload = new Dictionary<string, object> {
                { "UserName","Test"},
                { "Sex","Boy"}
            };

            //密钥
            var secretKey = new byte[] { 164, 60, 194, 0, 161, 41, 38, 130, 89, 141, 164, 45, 170, 159, 209, 69, 137, 243, 216, 191, 131, 47, 250, 32, 107, 231, 117, 37, 158, 225, 234 };
            
            string token = Jose.JWT.Encode(payload, secretKey, JwsAlgorithm.HS256);

            Console.WriteLine("加密得到的Token:"+token);

            string json = JWT.Decode(token, secretKey);
            Console.WriteLine("解密得到的字符串:" + json);
            Console.ReadLine();

运行结果:

加密后的Token分为三部分 :Header 头部、Payload 负载、Signature 签名

  1、头部存储的token 类型和采用的加密算法,使用的是Base64Url 编码

  

  2、负载存储的是用户信息、标识,使用的是Base64Url 编码。

  3、签名使用header中指定签名算法进行签名,签名用于消息的发送者以及消息没有经过篡改。

 

总结:JWT的加密个人认为不够安全,头部和负载使用的是Base64Url 编码。

  

 

以上是关于JSON Web Tokens简单学习的主要内容,如果未能解决你的问题,请参考以下文章

JSON Web Tokens(JWT)

JWT(JSON Web Tokens)操作帮助类

JSON WEB TOKENS

JWT(JSON Web Tokens)

JWT(JSON Web Tokens)

Implement JSON Web Tokens Authentication in ASP.NET Web API and Identity 2.1