本文章基于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);
}
}
踏实一些,不要着急,你想要的,岁月都会给你。