匹配python和javascript之间的二进制文件校验和

时间:2013-07-16 14:04:15

标签: javascript python checksum

我需要管理从服务器下载的图像文件的校验和。我有一个配置文件,其中包含jSON格式的文件的imagefilepath和校验和,如下所示:

{
"filepath": "/images/file.png",
"checksum": "dd37423ed23983442ddf232eab23b2b"
}

使用python脚本在服务器上生成图像文件的校验和(并添加到此配置文件中),如下所示:

import hashlib
f = open('file.png', 'rb')
m = hashlib.md5()
m.update(f.read())
m.hexdigest()

客户端应用程序下载配置文件,然后下载图像文件。然后,它使用以下代码在javascript中计算图像文件的校验和。

var xhr = new XMLHttpRequest();
xhr.open('GET', fileurl, true);
xhr.onreadystatechange = function(e) {
    if(this.readyState == 4 && this.status == 200) {
        var checksum = calculateChecksum(this.responseText);
    }
};
xhr.send();

calculateChecksum使用this algorithm来计算javascript中的校验和。但问题是校验和永远不会与配置文件中存在的内容匹配(从服务器上的python代码计算)。同样适用于文本文件。我知道javascript字符串是以UCS-2格式编码的,这可能是校验和计算不正确的原因。

0 个答案:

没有答案