【问题标题】:JWT Token IssueJWT 代币发行
【发布时间】:2020-02-18 08:50:15
【问题描述】:

我使用 java keystore 公钥和 io.jsonwebtoken 库创建了一个 jwt 令牌。 生成后,我将生成的令牌复制粘贴到https://jwt.io 网站。它在不使用私钥的情况下解码了我的令牌。这怎么可能?

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
PrivateKey privateKey = pair.getPrivate();
Claims claims = Jwts.claims().setSubject(userName);
        claims.put("scopes", scopes);
        String token = Jwts.builder()
                .setClaims(claims)
                .signWith(SignatureAlgorithm.RS256, privateKey)
                .compact();

【问题讨论】:

标签: java spring jwt


【解决方案1】:

您的 JWT 仅经过签名,未加密。传入 JWT 的主要安全特性是它最后有一个校验和/签名。您的 Java 程序能够验证校验和是否与 JWT 的实际内容(例如标头和声明)匹配。如果校验和 匹配,则服务器将假定 JWT 已被篡改并拒绝它。 JWT 的主要用途与其说是保护关键信息,不如说是用于控制应用程序中的授权和身份验证。

【讨论】:

猜你喜欢
  • 2021-10-01
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
  • 2016-06-24
  • 2023-03-12
  • 2013-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多