【发布时间】:2019-02-08 17:30:49
【问题描述】:
public static string GenerateToken(string Username)
{
var claimsdata = new[] { new Claim(ClaimTypes.Name, Username) };
var key = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes("qwertyuioplkjhgfdsazxcvbnmqwertlkjfdslkjflksjfklsjfklsjdflskjflyuioplkjhgfdsazxcvbnmmnbv"));
var signInCred = new SigningCredentials(key, SecurityAlgorithms.HmacSha384Signature);
var token = new JwtSecurityToken(
issuer: "mysite",
audience: "mysite",
expires: DateTime.Now.AddMinutes(60),
claims: claimsdata,
signingCredentials: signInCred);
var tokenString = new JwtSecurityTokenHandler().WriteToken(token);
return tokenString;
}
//密钥长度为88个字符。如果我将其减少到少于 16 个字符,则会出现异常:
System.ArgumentOutOfRangeException: 'IDX10603: 解密失败。 尝试的键:'[PII 被隐藏]'。捕获的异常:'[PII 被隐藏]'。 token: '[PII 被隐藏]''
【问题讨论】:
-
但我还是不明白为什么它应该是最小 128 位。
标签: c# asp.net-core jwt