какая длина ключа должна быть в подписании Credentials jwt asp.net core - PullRequest
0 голосов
/ 03 сентября 2018
 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 скрыт]». токен: '[PII скрыт]' '

1 Ответ

0 голосов
/ 21 ноября 2018

минимальная длина в sha256 в 16 символов, потому что это 256 шестнадцатеричных битов, тогда 256/16 = 16

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...