我正在尝试连接到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函数错误还是?