Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将HmacSHA1校验和生成方法从Java转换为PHP_Java_Php_Sha1_Translate_Hmacsha1 - Fatal编程技术网

将HmacSHA1校验和生成方法从Java转换为PHP

将HmacSHA1校验和生成方法从Java转换为PHP,java,php,sha1,translate,hmacsha1,Java,Php,Sha1,Translate,Hmacsha1,我想将以下Java方法转换为PHP: private byte[]generateChecksum(byte[]inData){ 试一试{ byte[]b_key=secretValue.getBytes(“ISO-8859-1”); SecretKeySpec sha1Key=新的SecretKeySpec(b_键,“HmacSHA1”); Mac Mac=Mac.getInstance(“HmacSHA1”); mac.init(sha1Key); 字节[]sigBytes=mac.doFi

我想将以下Java方法转换为PHP:

private byte[]generateChecksum(byte[]inData){
试一试{
byte[]b_key=secretValue.getBytes(“ISO-8859-1”);
SecretKeySpec sha1Key=新的SecretKeySpec(b_键,“HmacSHA1”);
Mac Mac=Mac.getInstance(“HmacSHA1”);
mac.init(sha1Key);
字节[]sigBytes=mac.doFinal(inData);
返回sigBytes;
}捕获(例外e){
log.error(“问题创建哈希:+e”);
返回null;
}
}
我提出了以下内容,但它似乎没有产生与Java方法相同的结果:

专用函数generateChecksum($inData){
试一试{
$hash=hash_hmac('sha1',$inData,$this->secretValue,TRUE);
返回$this->getBytes($hash);
}捕获(例外$e){
返回null;
}
}

我解决了它。该问题是由于将$inData作为字节数组而不是字符串传递给hash_hmac()引起的

如果没有一些测试数据,Java代码的结果、PHP代码的结果以及
$this->custom_hmac()
中的实际PHP代码都无法提供任何有意义的帮助。抱歉。我粘贴了错误版本的PHP代码。更改$hash=$this->custom_hmac('sha1',$inData,$this->getBytes($this->secretValue),TRUE);to$hash=hash_hmac('sha1',$inData,$this->secretValue,TRUE);我解决了。该问题是由于将$inData作为abyte数组而不是字符串传递给hash_hmac()引起的。