0
私はプログラムチャレンジのためにたくさんのファイルのmd5ハッシュを検証しようとしています。ほとんどのファイルは正しく検証されています(すべてが必要です)。しかし、いくつかのjpg、png、およびgifファイルでは、私が生成しているハッシュは正しくありません。 md5sumを使用して端末のファイルをチェックすると正しいハッシュが得られます。このコードは、md5ハッシュを取得する方法を示しています。Python hashlibがいくつかの画像ファイルの予期しないハッシュを与える
import hashlib
import urllib
urllib.urlretrieve("https://farm4.staticflickr.com/3199/3083395581_663a7aaf76_z.jpg", "TestFile.jpg")
fileBytes = open("TestFile.jpg", 'rb').read()
foundHash = hashlib.md5(fileBytes).hexdigest()
print "Found Hash: " + foundHash
print "Expected Hash: abab4dd9a83f5636c10f4937686a7993"
正しいmd5が生成されないのはなぜですか?
TestFile.jpgには同じハッシュはありませんが、flickr APIについてはわかりません。ファイルを正しく配信していないウェブサイトである可能性がありますか、正しく受信していないと言いますか? – ElectricPinnaple
Flickrは、URL要求の作成方法に応じて、(動的に作成された)640pxイメージまたは500pxイメージのいずれかを返します。クイックフィックスの場合は、別のPythonライブラリを使って画像をダウンロードし、640pxのバージョンを取得します。 '要求 '。この問題を理解するためには、Flickrがどちらのイメージサイズを返すかを少し研究しなければならないでしょう。たとえば、「urlretrieve」リクエストがどのように異なっているかを調べる必要があります。このURLへの 'wget'リクエスト –