【发布时间】:2013-12-28 15:33:22
【问题描述】:
这是我的问题:
我有一个 JAVA 函数来生成加密字符串。我必须在 PHP 中做同样的事情。
我的 Java 函数:
String generateSignature () {
byte[] Sequence = ("hello").getBytes("UTF-8");
Mac HMAC = Mac.getInstance("HMACSHA256");
HMAC.init("SECRET_KEY");
byte[] Hash = HMAC.doFinal(Sequence);
String Signature = new String(Base64.encodeBase64(Hash));
return Signature;
}
我的 PHP 函数:
function generateSignature() {
$sequence = "hello";
$encrypted = hash_hmac('sha256', $sequence, "SECRET_KEY");
return base64_encode($encrypted);
}
两个函数的返回值不一样。我注意到的是,在编码为 base 64 之前,这两个函数具有相同的结果。所以,对我来说,问题不在于密钥的生成,而在于编码。
有人可以帮忙吗?
【问题讨论】:
-
有什么区别?
-
您好.. 我认为您正在使用 woocommerce api。我也有同样的问题。用java连接api成功了吗?请帮助我收到签名不匹配错误
标签: java php encoding base64 hmac