无密钥解码token令牌的header和payload

生成token的时候,虽然指定了密钥,可是去在线网站去解码token的时候,却没有输入密钥这个选项。
难道获取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]));

解码结果:

{"alg":"HS256","typ":"JWT"}{"sub":"1234567890","name":"Baeldung User","iat":1516239022}

JWT Token在线解析解码 - ToolTT在线工具箱
原文地址:Decode a JWT Token in Java | Baeldung

你可能感兴趣的:(无密钥解码token令牌的header和payload)