私はjjwtライブラリの概要を読んでいる:トークンを構築jwt:JWTトークンを検証する際に署名アルゴリズムが必要ないのはなぜですか?
は、以下のように行われる:
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();
としてトークンが検証されています
try {
Jwts.parser().setSigningKey(key).parseClaimsJws(compactJws);
//OK, we can trust this JWT
} catch (SignatureException e) {
//don't trust the JWT!
}
SignatureAlgorithm.HS512
が使用されていません2番目のスニペットでそれはどのように推定されますか?それとも必要ないのですか?
しかし、最初の部分をデコードするアルゴリズムは必要ありませんか? –
いいえヘッダー(最初の部分)とペイロード(2番目の部分)はbase64urlでエンコードされています。署名アルゴリズムは署名を検証するためにのみ必要です(第3部) – pedrofb
ok私はRFC文書をよく見てください。ありがとう –