public class SignGenerateUtils {
private static final String ACCESS_KEY = "ACCESS_KEY";
private static final String SECRET_KEY = "SECRET_KEY";
public static void main(String[] args) {
// String timestamp = System.currentTimeMillis() + "";
String timestamp = "1592469343750";
String requestBody = "";
signGenerate(ACCESS_KEY, SECRET_KEY, timestamp, requestBody);
}
private static void signGenerate(String accessKey, String secretKey, String timestamp, String requestBody) {
String rawValue = timestamp + "";
if (StringUtils.isNotEmpty(requestBody)) {
rawValue = rawValue + "$" + requestBody;
}
System.out.println("accessKey: " + accessKey);
System.out.println("secretKey: " + secretKey);
System.out.println("timestamp: " + timestamp);
System.out.println("sign: " + buildSign(secretKey, rawValue));
System.out.println("requestBody: " + requestBody);
System.out.println("rawValue: " + rawValue);
}
/**
* get sign
*
* @param secretKey
* @param rawValue
* @return
*/
private static String buildSign(String secretKey, String rawValue) {
Mac sha256_HMAC = null;
try {
sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secret_key = new SecretKeySpec(secretKey.getBytes(), "HmacSHA256");
sha256_HMAC.init(secret_key);
try {
return URLEncoder.encode(Base64.getEncoder().encodeToString(sha256_HMAC.doFinal(rawValue.getBytes(StandardCharsets.UTF_8))),"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
} catch (NoSuchAlgorithmException | InvalidKeyException e) {
e.printStackTrace();
}
return null;
}
}