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 编码。

  

 

posted @ 2018-08-21 13:57  _York  阅读(156)  评论(0编辑  收藏