欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JWT生成与解析遇到的奇怪问题(待解决)

程序员文章站 2022-06-01 21:32:46
...

JWT生成与解析遇到的奇怪问题(待解决)


创建JWT令牌时使用的**为 abcd

/**
  * 创建Jwt令牌
  */
@Test
    public void testCreateJwt() {
        JwtBuilder builder = Jwts.builder()
                .setId("123456")
                .setSubject("明明")
                .setIssuedAt(new Date())
                .signWith(SignatureAlgorithm.HS256, "abcd");
        System.out.println(builder.compact());
    }
eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxMjM0NTYiLCJzdWIiOiLmmI7mmI4iLCJpYXQiOjE2MDU4NzUwMzV9.994-0ORO0UNxGcpolrCbs8vrTJb7gVefuhbFEgYmYik

按道理我们解析上面的Token令牌时必须指定**为abcd才可解析令牌数据,否则报错;

但是神奇的是,使用abcd与1位0到9数字组成**解析令牌,竟然可以解析成功:

/**
     * 解析Jwt令牌数据
     */
    @Test
    public void testParseJwt() {
        String compactJwt = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxMjM0NTYiLCJzdWIiOiLmmI7mmI4iLCJpYXQiOjE2MDU4NzUwMzV9.994-0ORO0UNxGcpolrCbs8vrTJb7gVefuhbFEgYmYik";
        Claims claims = Jwts.parser()
                .setSigningKey("abcd1")
                .parseClaimsJws(compactJwt)
                .getBody();
        System.out.println(claims);
    }

JWT生成与解析遇到的奇怪问题(待解决)

相关标签: 神奇的问题