问题描述
我认为制作我自己的(可怕的)sha256 函数会是一个有趣的项目。我以最糟糕的方式做到了这一点 - 通过专门使用包含 '1's 和 '0's 作为字符的字符串进行操作。
无论如何,我让它工作了,它可以将“hello,world”散列到 9ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b9ca7e4eaa6e8ae9c7d261167129184883644d07dfba7cbfbc4c8a2e08360d5b
的预期值
所以接下来我尝试对文件进行哈希处理。 testing.txt
包含单词“testing”,也与 testing.txt
的 windows powershell Get-filehash 匹配。
然后我用 audacity 录制了一个 mp3 并尝试对其进行哈希处理,结果完全不同!
我尝试了什么:
def file_to_binstr(filename):
with open(filename,'rb') as f:
contents = f.read()
binstr = ''
for char in contents: # contents is bytestring
char = bin(char)[2:] # string of binary representation of each byte
char = zero_pad(char,8) # makes sure byte is 8 characters long
binstr += char
return binstr
我怀疑 open(filename,'rb') 不让我读取所有文件的字节,只是与文件内容相关的字节,而 windows 的 Get-filehash 可以散列文件的所有位。如果是这种情况,我将如何读取文件的完整二进制数据?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)