por online jsonwebtoken decoded create basada autenticacion jwt

online - ¿Qué es la clave secreta para la autenticación basada en JWT y cómo generarla?



jwt java (2)

Puedes escribir tu propio generador. La clave secreta es esencialmente una matriz de bytes. Asegúrese de que la cadena que convierte a una matriz de bytes esté codificada en base64. En Java podrías hacer algo como esto.

String key = "random_secret_key"; String base64Key = DatatypeConverter.printBase64Binary(key.getBytes()); byte[] secretBytes = DatatypeConverter.parseBase64Binary(base64Key);

Recientemente comencé a trabajar con autenticación basada en JWT. Después del inicio de sesión del usuario, se generará un símbolo del usuario que se verá como "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMEncuentro de la actividad en el momento

Consta de tres partes, cada una separada por un punto (.). La primera parte es el encabezado codificado en Base64. Después de decodificar obtendremos algo como {"alg": "HS256", // Algoritmo usado "typ": "JWT"}

La segunda parte es reclamaciones y codificada en base64. Después de la decodificación obtendremos algo como {"sub": "1234567890", "name": "John Doe", "admin": true}

La tercera parte es la firma y se genera con

HMACSHA256 (base64UrlEncode (encabezado) + "." + Base64UrlEncode (carga útil), codificado en base64 secreto )

Ahora, ¿qué es esta clave secreta y cómo generar esta clave secreta?

Probé un generador en línea como " http://kjur.github.io/jsjws/tool_jwt.html " pero no obtengo mucha ayuda.


El algoritmo ( HS256 ) utilizado para firmar el JWT significa que el secreto es una clave simétrica conocida tanto por el remitente como por el receptor. Se negocia y distribuye fuera de banda. Por lo tanto, si usted es el destinatario del token, el remitente debería haberle proporcionado el secreto fuera de banda.

Si usted es el remitente, puede usar una cadena arbitraria de bytes como secreto, puede generarse o elegirse a propósito. Debe asegurarse de proporcionar el secreto al destinatario deseado fuera de banda.

Para el registro, los 3 elementos en el JWT no están codificados en base64 sino en codificación base64url, que es una variante de la codificación en base64 que resulta en un valor seguro de URL.