如何计算从GetReport操作收到的亚马逊报告文件的md5哈希值

时间:2017-01-18 08:02:20

标签: php laravel amazon md5

我需要在php中为从Amazon GetReport调用接收的GetReport文件计算Md5哈希,并与GetReport响应头中收到的Content-md5哈希字符串匹配,以检查文件的完整性。 问题是我无法弄清楚如何计算通过Amazon GetReport调用收到的报告文件的md5哈希。

我正在使用Guzzle进行此GetReport Api通话

谢谢

1 个答案:

答案 0 :(得分:0)

不确定这是否有效。我们假设$responseGuzzle\Http\Message\Response对象:

$expectedContentMd5 = $response->getHeader('Content-MD5');
$calculatedContentMd5 = base64_encode(md5($response->getBody(), true));

if($expectedContentMd5 === $calculatedContentMd5) {
    //verified, do your tasks here
} else {
    echo 'MD5 not matched';
    exit;
}

来自:https://github.com/iFixit/php-amazon-mws-reports/blob/8aef4aede236b36ca57432f82e493f0d6e4f6200/src/MarketplaceWebService/Client.php#L964

的启示

请注意,在AWS中,Content-MD5字段是数据的二进制md5哈希值的base64编码值。