private String generateKey(String key, JSONObject incomingData) {
final Charset asciiCs = StandardCharsets.US_ASCII;
sha256_HMAC = Mac.getInstance("HmacSHA1");
} catch (NoSuchAlgorithmException e) {
final SecretKeySpec secret_key = new javax.crypto.spec.SecretKeySpec(asciiCs.encode(key).array(), "HmacSHA1");
assert sha256_HMAC != null;
sha256_HMAC.init(secret_key);
} catch (InvalidKeyException e) {
final byte[] mac_data = sha256_HMAC.doFinal(asciiCs.encode(String.valueOf(incomingData)).array());
System.out.println("mac data");
System.out.println(mac_data);
for (final byte element : mac_data)
result += Integer.toString((element & 0xff) + 0x100, 16).substring(1);
System.out.println("Result:[" + result + "]");
private boolean verifySignature(String gluheader,JSONObject incomingData)
String key = generateKey("secret_key",incomingData);
if(gluheader.equalsIgnoreCase(key))