1、生成通用签名方法
/**
* 通用生成签名工具方法
* @param timestamp 时间戳(毫秒值)
* @param secret 密钥
* */
public static String genSign(Long timestamp, String secret) {
String stringToSign = timestamp + "\n" + secret;
try{
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8));
return URLEncoder.encode(new String(Base64.encodeBase64(signData)), StandardCharsets.UTF_8);
}catch (Exception e){
e.printStackTrace();
}
return null;
}
2、签名样例
public static void main(String[] args) {
System.out.println("生成签名sign:["+genSign(System.currentTimeMillis(),"abc")+"]");
}
/**
* 通用生成签名工具方法
* @param timestamp 时间戳(毫秒值)
* @param secret 密钥
* */
public static String genSign(Long timestamp, String secret) {
String stringToSign = timestamp + "\n" + secret;
try{
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8));
return URLEncoder.encode(new String(Base64.encodeBase64(signData)), StandardCharsets.UTF_8);
}catch (Exception e){
e.printStackTrace();
}
return null;
}