基于JWT实现Token的加密和解密

本文章基于JWT实现了Token的加密和解密算法,不包含任何业务逻辑。

第一步
下载相应的jar,如下图所示:
这里写图片描述

第二步
看代码,一个加密的方法getToken,一个解密的方法parseToken

public class test {
    static String TTP_SECRET = "bfb82ec324d34a9d";

    public static String getToken(String uuid,String time){
        JSONObject userinfo = new JSONObject();
        userinfo.put("useruuid",uuid);
        userinfo.put("time",time);

        Payload payload = new Payload(userinfo);

        JWSHeader header = new JWSHeader(JWSAlgorithm.HS256);
        header.setContentType("jwt");

        //创建 JWSObject 对象
        JWSObject jwsObject = new JWSObject(header, payload);

        // 签名(秘钥)
        JWSSigner signer = new MACSigner(TTP_SECRET.getBytes());

        try {

            jwsObject.sign(signer);

        } catch (JOSEException e) {
            System.err.println("Couldn't sign JWS object: " + e.getMessage());
            return "error";
        }

        String token = jwsObject.serialize();
        System.out.println("Token:"+token);
        return  token;
    }

    public static String  parseToken(String token){
        try {
            JWT jwt = JWTParser.parse(token);
             ReadOnlyJWTClaimsSet cs = jwt.getJWTClaimsSet();
            Map<String,Object> map = cs.getAllClaims();

            String useruuid = (String) map.get("useruuid");
            String time = (String) map.get("time");

            System.out.println(useruuid);
            System.out.println(time);
            return useruuid;
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void main(String[] args) {
       String token=getToken("myuuid","mytime");
        String useruuid = parseToken(token);

    }
}

踏实一些,不要着急,你想要的,岁月都会给你。

猜你喜欢

转载自blog.csdn.net/qq_28082757/article/details/71422374