您的位置:首页 > 其它

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

2017-05-08 15:49 891 查看
本文章基于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);

}
}


踏实一些,不要着急,你想要的,岁月都会给你。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息