我正在尝试验证一堆文件的md5哈希值,以用于编程挑战。大多数文件都正确验证(它们都应该)。但是在一些jpg,png和gif文件中,我生成的哈希是不正确的。使用md5sum检查终端中的文件会产生正确的哈希值。此代码显示了我如何获取md5哈希:
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?
答案 0 :(得分:0)
使用urllib.urlretrieve获取不同的文件来检索图像,而不是使用浏览器下载此图像。检查下载的Python的散列" TestFile.jpg"在命令行上看到它不是预期的哈希。
检查您的网址来源,并确保其符合flickr API的正确用法。