1

我需要管理从服务器下载的图像文件的校验和。我有一个配置文件,其中包含 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 使用此算法在 javascript 中计算校验和。但问题是校验和永远不会与配置文件中存在的内容匹配(从服务器上的 python 代码计算)。同样适用于文本文件。我知道在 javascript 中字符串以 UCS-2 格式编码,这可能是校验和计算不正确的原因。

4

0 回答 0