相关疑难解决方法(0)

如何从秘密字符串中生成HMAC_SHA256密钥以在jose4j中与JWT一起使用?

我想生产JWT并用HMAC_SHA256签名.对于那个任务,我必须使用jose4j.我试图基于秘密生成密钥:

SecretKeySpec key = new SecretKeySpec(("secret").getBytes("UTF-8"), AlgorithmIdentifiers.HMAC_SHA512);
Run Code Online (Sandbox Code Playgroud)

但是它会生成40位密钥,而使用HMAC_SHA256签名需要512位密钥.

  • 主要问题 - 如何使用jose4j使用HMAC_SHA512签署令牌?
  • 我上面的方法解决问题创建的问题 - 如何基于秘密字符串制作512位长密钥?

java encryption jwt jose4j

9
推荐指数
2
解决办法
9420
查看次数

我可以使用什么替代 Java Spring 的 Jwts.signWith() 已弃用方法?

我需要在 mi API 中使用 JWT,IDE 告诉我 .signWith() 方法已弃用。到目前为止,我使用 @Deprecated 注释,但我认为这不是很好的做法。

这是我的示例代码:

@Deprecated
public String generateToken(UserDetails userDetails) {
    return Jwts.builder().setSubject(userDetails.getUsername()).setIssuedAt(new Date())
            .setExpiration(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 10))
            .signWith(SignatureAlgorithm.HS256, KEY).compact();
}
Run Code Online (Sandbox Code Playgroud)

java spring spring-security deprecated spring-boot

5
推荐指数
1
解决办法
2万
查看次数