行业资讯 2025年08月6日
0 收藏 0 点赞 750 浏览 1304 个字
摘要 :

文章目录 1.导入依赖 2.生成RSA256公私钥对 3.实现JWT签发与验证 在使用JWT时,可以使用hutool工具包轻松实现,这里我们展示下使用 RSA256加解密,来实现JWT的签发与验……




使用JWT时,可以使用hutool工具包轻松实现,这里我们展示下使用 RSA256加解密,来实现JWT的签发与验证。

1.导入依赖

首先导入hutool的maven依赖:

<dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.8.24</version>
</dependency>

2.生成RSA256公私钥对

我们先介绍下如何使用hutool生成RSA256公私钥对,代码如下:

 @Test
    public void generateKeyPair() {
        String id = \"rs256\";
        KeyPair keyPair = KeyUtil.generateKeyPair(AlgorithmUtil.getAlgorithm(id));
        System.out.println(Base64.getEncoder().encodeToString(keyPair.getPrivate().getEncoded()));//私钥
        System.out.println(Base64.getEncoder().encodeToString(keyPair.getPublic().getEncoded()));//公钥
    }

这里我们将生成的KeyPair分别使用了Base64编码处理了,这样便于我们存储。

3.实现JWT签发与验证

接下来我们用已经生成的RSA256公私钥对(Base64加密后的)来实现JWT的签发与验证,代码如下:

@Test
public void test() {
    String id = \"rs256\";
    String privateKey = \"MIIC省略.....==\";
    String publicKey = \"MIG省略....\";
    RSA rsa = SecureUtil.rsa(privateKey, publicKey);
    final JWTSigner signer = JWTSignerUtil.rs256(rsa.getPrivateKey());
    final JWTSigner signer2 = JWTSignerUtil.rs256(rsa.getPublicKey());
    // 生成token
    final String token = JWT.create()
            .setNotBefore(DateUtil.date())
            .sign(signer);
    System.out.println(token);

    // 验证算法
    JWTValidator.of(token).validateAlgorithm(signer2);
    // 解析token
    JWT jwt = JWTUtil.parseToken(token);
    System.out.println(jwt.getHeader());
    System.out.println(jwt.getPayload());
}

切记需要注意签名用privateKey(私钥),验证用publicKey(公钥),千万别搞反了,不然会报错的。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/10205.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号