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 не так или нет?