JWT用于加密生成安全认证的令牌,存储登录验证成功的部分用户信息
一、安装JWT
二、加密 解密 代码
/*存储在加密字符串的信息*/
var payload = new Dictionary<string, object> {
{ "UserName","Test"},
{ "Sex","Boy"}
}; //密钥
var secretKey = new byte[] { , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , }; 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 编码。