package com.fr.plugin.gzwauth.utils; import com.nimbusds.jose.*; import com.nimbusds.jose.crypto.MACSigner; import com.nimbusds.jose.shaded.json.JSONObject; import java.util.HashMap; import java.util.Map; import java.util.UUID; public class TokenUtil { public static final JWSHeader header = new JWSHeader(JWSAlgorithm.HS256, JOSEObjectType.JWT, null, null, null, null, null, null, null, null, null, null, null); /** * 获取Token * @param sysId 系统ID * @param secretkey 密钥 * @return */ public static String getToken(String sysId, String secretkey){ Map payload = new HashMap(); payload.put("sid", sysId); payload.put("iat", System.currentTimeMillis()); payload.put("rand", UUID.randomUUID()); String token = ""; try { token = createToken(header, SM3Util.SM3Encode(Md5Util.getMD5(secretkey)).getBytes(), payload); } catch (Exception e) { e.printStackTrace(); } return token; } public static String createToken(JWSHeader header, byte[] SECRET, Map payload) { String tokenString = null; // 创建一个 JWS object JWSObject jwsObject = new JWSObject(header, new Payload(new JSONObject(payload))); try { // 将jwsObject 进行HMAC签名 jwsObject.sign(new MACSigner(SECRET)); tokenString = jwsObject.serialize(); } catch (JOSEException e) { e.printStackTrace(); } return tokenString; } public static void main(String[] args) { System.out.println(getToken("1001","admin111111")); } }