ich die Übersicht über die jjwt Bibliothek zu lesen:jwt: Warum wird der Signaturalgorithmus nicht benötigt, wenn ein JWT-Token verifiziert wird?
das Token Der Aufbau erfolgt wie folgt:
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.impl.crypto.MacProvider;
import java.security.Key;
// We need a signing key, so we'll create one just for this example. Usually
// the key would be read from your application configuration instead.
Key key = MacProvider.generateKey();
String compactJws = Jwts.builder()
.setSubject("Joe")
.signWith(SignatureAlgorithm.HS512, key)
.compact();
Und das Token ist verifiziert als:
try {
Jwts.parser().setSigningKey(key).parseClaimsJws(compactJws);
//OK, we can trust this JWT
} catch (SignatureException e) {
//don't trust the JWT!
}
SignatureAlgorithm.HS512
nicht verwendet wird auf dem zweiten Ausschnitt. Wie wird es abgeleitet? Oder ist es nicht notwendig?
Aber brauchen Sie nicht den Algorithmus, um diesen ersten Teil zu entschlüsseln? –
Nein. Der Header (erster Teil) und die Payload (zweiter Teil) sind Base64-codiert. Der Signaturalgorithmus ist nur notwendig, um die Signatur zu verifizieren (dritter Teil) – pedrofb
ok Ich denke, ich sollte mir die RFC-Dokumente genauer ansehen. Danke –