HMAC SHA-256 Java和PHP之间的区别

时间:2017-03-10 13:54:25

标签: java php cryptography sha256 hmac

我正在尝试连接到Web服务,我需要加密我的签名。

我这样做的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 个答案:

没有答案