生成token的時(shí)候,雖然指定了密鑰,可是去在線網(wǎng)站去解碼token的時(shí)候,卻沒有輸入密鑰這個(gè)選項(xiàng)。
難道獲取token的header和payload真的不需要密鑰嗎?
出于好奇的角度,一番搜索,千篇一律的解碼方法都需要指定secret,
終于讓我看到了無密鑰就可以獲取header和payload的文章。
token信息:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkJhZWxkdW5nIFVzZXIiLCJpYXQiOjE1MTYyMzkwMjJ9.qH7Zj_m3kY69kxhaQXTa-ivIpytKXXjZc1ZSmapZnGE
代碼如下:
String[] chunks = token.split("\\.");
Base64.Decoder decoder = Base64.getUrlDecoder();
String header = new String(decoder.decode(chunks[0]));
String payload = new String(decoder.decode(chunks[1]));
解碼結(jié)果:
{"alg":"HS256","typ":"JWT"}{"sub":"1234567890","name":"Baeldung User","iat":1516239022}
JWT Token在線解析解碼 - ToolTT在線工具箱
原文地址:Decode a JWT Token in Java | Baeldung