从base64或原始数据创建校验和?

时间:2014-06-13 11:50:52

标签: php rest file-upload base64 checksum

在我的项目中,我需要通过API传输图像。在传输之前,我使用base64对原始图像数据进行编码,因此我可以在JSON请求中使用它。我想要做的是添加文件的校验和以便请求,这样我就可以在我的API端测试文件是否成功传输。

我的问题是 - 我应该在base64之前或之后计算校验和吗?

// Client
$checksum = md5($rawImageData);
$base64ImageData = base64_encode($rawImageData);

// API
$receivedBase64 = $_POST['base64ImageData'];
$receivedChecksum = $_POST['checksum'];
$imageData = base64_decode($receivedBase64);
$actualChecksum = md5($imageData);

if ($receivedChecksum != $actualChecksum) {
   // Image not transfered correctly.
}

或者我应该首先用base64编码数据,然后计算md5校验和,在API端,将它与接收到的base64的校验和进行比较?或者无关紧要,两种解决方案都具有相同的可靠性?感谢

1 个答案:

答案 0 :(得分:0)

好吧,你的问题不是一个REST问题,或者是一个php问题......

如果你要开始将数据转换为然后发送然后反转这些转换,那么通常在最后的校验和是有意义的。

您还需要记住,HTTP将为您提供一些保护/纠正。我倾向于说不要打扰校验和。根据您的使用案例的描述,它听起来并不像您真的需要添加校验和。