HMAC SHA-256 разница между Java и PHP

Я пытаюсь подключиться к веб-сервисам и мне нужно зашифровать мою подпись.

Мой метод Java для этого заключается в следующем:

public String hashMacSha256(String message, String key) throws InvalidKeyException, NoSuchAlgorithmException, UnsupportedEncodingException {
    Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
    SecretKeySpec secret_key = new SecretKeySpec(key.getBytes(),"HmacSHA256");
    sha256_HMAC.init(secret_key);
    String hash = Base64.encodeToString(sha256_HMAC.doFinal(message.getBytes()), Base64.DEFAULT);
    return hash;
}

Функция PHP, которая мне была предоставлена

$signature=base64_encode(hash_hmac("sha256", trim($xmlReq), $signature_key, True));
Java result: YN3JXxIbcispA+smV6zUu6KVNwnm+cBmMmSNqAbVoS0=
Php result:  x7WuslORVY00BtoQuk1dya2bu9pMCpPMunPqPR+3HI4=

Когда я запускаю оба, чтобы сравнить результат, они разные. Это потому, что функция Java не так или нет?

0 ответов

Другие вопросы по тегам