#

Fehler: System.ArgumentOutOfRangeException  The algorithm: 'HS256' requires the SecurityKey.KeySize to be greater than '128' bits

 

Die Fehlermeldung tritt auf, wenn man einen Sicherheitstoken für die Authentifizierung erstellt

 

Asp.Net Core Wep Api, Identity, Authentifizierung, JWTBearer

 

Fehlermeldung im Code

System.ArgumentOutOfRangeException

  HResult=0x80131502

  Message=IDX10603:

The algorithm: 'HS256' requires the SecurityKey.KeySize to be greater than '128' bits.

KeySize reported: '80'.

Source=Microsoft.IdentityModel.Tokens

 

 

Der Fehler tritt auf, wenn man

SymmetricSecurityKey securityKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(secret));

            return securityKey;

 

using Microsoft.IdentityModel.Tokens;   //*Token

 

Lösung:

Man muss einen längeren Kodierungsschlüssel eingeben

In diesem Fall wurde der secret_Encoder_Key von "123456789" auf "1234567890 a very long word" geänderr

 

C# Code

//< ok output JwtToken >

            String secret_Encoder_Key = "1234567890 a very long word";

            JwtToken  token = new JwtTokenBuilder()

                .AddSecurityKey(JwtSecurityKey.Create(secret_Encoder_Key))

                .AddSubject("Api-Test")

                .AddIssuer("Test.Security.Bearer")

                .AddAudience("Test.Security.Bearer")

                //.AddClaim("EmployeeNumber", "1234")

                .AddExpiry(5) //Lifetime in Minutes

                .Build();

 

            //return Ok(token);

 

 

 

 

  StackTrace:

   at Microsoft.IdentityModel.Tokens.SymmetricSignatureProvider..ctor(SecurityKey key, String algorithm)

   at Microsoft.IdentityModel.Tokens.CryptoProviderFactory.CreateSignatureProvider(SecurityKey key, String algorithm, Boolean willCreateSignatures)

   at Microsoft.IdentityModel.Tokens.CryptoProviderFactory.CreateForSigning(SecurityKey key, String algorithm)

   at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.CreateEncodedSignature(String input, SigningCredentials signingCredentials)

   at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.WriteToken(SecurityToken token)

   at Freiberufler.Provider.JWT.JwtToken.get_JwtToken_String() in C:\_Daten\Desktop\VS_Projects\Web\Freiberufler\Freiberufler\Provider\JWT\JwtToken.cs:line 25

   at Freiberufler.Controllers.TokenController.Create(LoginInputModel inputModel) in C:\_Daten\Desktop\VS_Projects\Web\Freiberufler\Freiberufler\Controllers\TokenController.cs:line 54

   at Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(Object target, Object[] parameters)

   at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.<InvokeActionMethodAsync>d__12.MoveNext()

Mobile

.