// Key key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
String password = "12345678";
Key key = Keys.hmacShaKeyFor(JJwtUtil.data256Length(password));
// key = new SecretKeySpec(password.getBytes(StandardCharsets.UTF_8),"AES");
String jws = Jwts.builder()
.setHeaderParam("K","V")
.setSubject("XH")
.setIssuer("Demo")
.setExpiration(new Date(new Date().getTime()+10000000000L))
.claim("Demo","Demo")
.setId(UUID.randomUUID().toString())
.signWith(key)
// .signWith(key,SignatureAlgorithm.HS256)
.compact();
Pointer.lg(jws);
String []jws2 = jws.split("\\.");
byte[] jws3 = Decoders.BASE64URL.decode(jws2[1]);
Pointer.lg("jws",new String(jws3));
Pointer.lg(Jwts.parserBuilder()
.setSigningKey(key)
.build()
.parse(jws)
.getBody()
.toString()
);
// Jwts.parserBuilder().setSigningKey(key).build().parseClaimsJwt(jws);//error
Jwts.parserBuilder().
requireSubject("XH")
.setSigningKey(key)
.build()
.parseClaimsJws(jws);
public static byte[] data256Length(String data){
return data256Length(data.getBytes(StandardCharsets.UTF_8));
}
public static byte[] data256Length(byte[] data){
byte[] tmp = new byte[256];
for (int i=0;i<tmp.length;i++){
if(i<data.length){
tmp[i] = data[i];
}else{
tmp[i] = 0;
}
}
return tmp;
}
eyJLIjoiViIsImFsZyI6IkhTNTEyIn0.eyJzdWIiOiJYSCIsImlzcyI6IkRlbW8iLCJleHAiOjE2MzI3OTQwMDMsIkRlbW8iOiJEZW1vIiwianRpIjoiMGYzNWRjZDEtYzk0NS00NTQzLTk4N2ItNWRiMmIxYTk2NTIzIn0.lXxHQ3UrRTfxf_1ZAbktiCOwMxoC9EaWSsAZqwWzTrQFgz6rfcArrjF0BsOkvLQMxFmMc_UevZTuuOFmY36nDQ
jws {"sub":"XH","iss":"Demo","exp":1632794003,"Demo":"Demo","jti":"0f35dcd1-c945-4543-987b-5db2b1a96523"}
{sub=XH, iss=Demo, exp=1632794003, Demo=Demo, jti=0f35dcd1-c945-4543-987b-5db2b1a96523}