正在为我正在学习的密码学自学课程做作业(我没有收到这门课的学分)。我需要在一个大文件上计算哈希值,其中哈希是逐块完成的。我现在被难住的事情是如何将文件分解成这些块?我正在使用python,我对它很陌生。
f = open('myfile', 'rb')
BLOCK_SIZE = 1024
m = Crypto.Hash.SHA256.new()
thisHash = ""
blocks = os.path.getsize('myfile') / BLOCK_SIZE #ignore partial last block for now
for i in Range(blocks):
b = f.read(BLOCK_SIZE)
thisHash = m.update(b.encode())
f.seek(block_size, os.SEEK_CUR)
我正确地接近这个吗?代码似乎一直运行到该m.update(b.encode())
行执行为止。我不知道我是否离基地很远,或者该怎么做才能完成这项工作。任何建议表示赞赏。谢谢!
(注意:正如您可能注意到的那样,这段代码目前并没有真正产生任何东西——我只是设置了一些脚手架)