Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

125
Views
Generating signin KEY in Java for Post request

I need to send a POST request to api.example.com. I need to generate singin KEY to send a POST request. The KEY must be generated by the following formula

HEX (HMAC-SHA384({apiPath} + {nonce} + JSON({body}),{secretKey}))

I've found a sample of Javascript code how to genereate signing key

javascript
const crypto = require('crypto');

const publicKey = '';
const secretKey = '';

const apiPath = '/v3/auth/kuna_codes/issued-by-me';
const nonce = new Date().getTime();
const body = {};

const signatureString = `${apiPath}${nonce}${JSON.stringify(body)}`;

const signature = crypto
    .createHmac('sha384', secretKey)
    .update(signatureString)
    .digest('hex');

console.log(signature);

I need a Java code that generates a signing key by the formula provided above

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Something like this

package com.vorontsov.tbe.main;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.HexFormat;

public class KunaSignatureGenerator {
    private static final String ALGORITHM = "HmacSHA384";
    private static final String API_PATH = "/v3/auth/kuna_codes/issued-by-me";
    private static final String SECRET_KEY = "secret";

    public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeyException, JsonProcessingException {
        var signature = new KunaSignatureGenerator().generateSignature(new RequestParams("stringVal"));
        System.out.println(signature);
    }

    private String generateSignature(RequestParams requestParams) throws NoSuchAlgorithmException, InvalidKeyException, JsonProcessingException {
        var nonce = "" + System.currentTimeMillis();
        var body = new ObjectMapper().writeValueAsString(requestParams);

        final String signatureString = API_PATH + nonce + body;

        SecretKeySpec signingKey = new SecretKeySpec(SECRET_KEY.getBytes(), ALGORITHM);
        final Mac mac = Mac.getInstance(ALGORITHM);
        mac.init(signingKey);

        return HexFormat.of().formatHex(mac.doFinal(signatureString.getBytes()));
    }

    private static record RequestParams(@JsonProperty("stringParam") String stringParams) {
    }

}
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!