.Net Core JWT 对称可逆加密 (一)
JWT
一 结构如下:
1、header包含加密算法和加密的对象类型是。如图加密算法是HMAC SHA-256,加密的对象类型是JWT 。
2、payload 有效载荷,key-value对的数据结构。用于存放一些额外的信息(角色等),此处的信息不加密,所以不建议存放敏感信息。
以上两段结构都需要经过BASE64编码。
3、签名。将编码后的header跟编码后的payload拼接,再使用一个预定义好的secretKey去加密最后得出来的就是签名。

二认证服务。直接贴代码
/// <summary> /// 使用对称可逆加密生成token /// </summary> /// <param name="name"></param> /// <param name="pwd"></param> /// <returns></returns> public string CreateToken(string name, string pwd) { //密钥 配置文件定义。 对称可逆加密调用方跟服务端的密钥一致 var key = AppSettingsHelper.AppSettings.key; //表示生成对称安全密钥 SymmetricSecurityKey _safeKey = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes(key)); //签名算法 SigningCredentials creds = new SigningCredentials(_safeKey, SecurityAlgorithms.HmacSha256); //自定义paylodd var claims = new[]{ new Claim(ClaimTypes.Name,name), new Claim("角色","Admin") }; //组成令牌数据 JwtSecurityToken jwtSecurityToken = new JwtSecurityToken( claims: claims, signingCredentials: creds, expires: DateTime.Now.AddMinutes(15) ); //生成token string token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken); return token; }
需要引入以下两个dll:
Microsoft.IdentityModel.Tokens
System.IdentityModel.Tokens.Jwt
使用postman测试:


浙公网安备 33010602011771号