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