Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

129
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda