JJwt加密解密

本文介绍了如何使用io.jsonwebtoken库进行JWT工具类的加密和解密操作,同时结合com.alibaba的FastJSON进行数据交互。重点展示了getJwt方法生成JWT和parseJWT方法验证token的示例。
摘要由CSDN通过智能技术生成

pom.xml依赖

        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
            <version>0.6.0</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>

 JWT工具类加密解密

package com.gm.utiles;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;


import java.util.Date;

public class JWTUtiles {

    //加密
    public static String getJwt(String id,String subject,Long trime){
        long l = System.currentTimeMillis();
        Date date = new Date(l);//当前系统时间
        if (null == trime){
            trime = 1000*60*60L;//有效时间一小时
        }
        JwtBuilder jwtBuilder = Jwts.builder()
                .setId(id)
                .setSubject(subject)
                .setIssuedAt(date)
                .setExpiration(new Date(l + trime))
                .signWith(SignatureAlgorithm.HS256, "diandiande");
        String compact = jwtBuilder.compact();
        return compact;
    }

    //验证
    public static Claims parseJWT(String token){
        Claims body = Jwts.parser()
                .setSigningKey("diandiande")
                .parseClaimsJws(token)
                .getBody();
        System.out.println(body.getSubject());
        return body;
    }

}

加密和解密的测试

@Test
    public void jwttest(){
        String token = JWTUtiles.getJwt("12", "点点", null);
        System.out.println(token);
    }
    @Test
    public void parser(){
        String token = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxMiIsInN1YiI6IuaAneWuhyIsImlhdCI6MTYzMDYzNjY4NCwiZXhwIjoxNjMwNjQwMjg0fQ.B7plrreMZRnnHfdHbFMgVhkzmIedny7rSQfpr6pfIVo";
        Claims claims = JWTUtiles.parseJWT(token);
        System.out.println("id=====>"+claims.getId());
        System.out.println("subject======>"+claims.getSubject());
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值