我会尽力描述我的困境。
我正在编写一个python脚本,它将获取一个输入文件并在其上执行SHA-256哈希。
如果我获取原始二进制图像并通过命令提示符运行它(在我的mac:shasum -a 256 somefile.bin上),我得到了正确的'摘要:' bda1ca ...'
我通过在线计算器运行这个二进制文件并获得相同的结果。
如果我在十六进制编辑器中打开此哈希,将所有字节提取到我的剪贴板并将其粘贴到SHA256计算器中我会得到不同的结果:' 689035 ...'
我在这里缺少什么?我尝试过上/下现金,每个字节之间的空格。我不知道还有什么可以尝试的。
这个问题的开始是因为我在Python中实现了这个问题,但在我担心代码之前,我试图理解为什么会有这种不同。
答案 0 :(得分:1)
当您在键盘上复制十六进制编辑器中的“字节”时,您很可能只是复制它的字符串表示。
也许这些命令可以帮助你获得它:
$ echo "Hello, world" > my_bin
$ shasum -a 256 my_bin
37980c33951de6b0e450c3701b219bfeee930544705f637cd1158b63827bb390 -
$ cat my_bin | shasum -a 256
37980c33951de6b0e450c3701b219bfeee930544705f637cd1158b63827bb390 -
$ cat my_bin | xxd -p | shasum -a 256
0e535a1a279db9753bcbc226b9305e6e6a39ba2d866c01a44cb9aac8d5fc9833 -
(xxd是我用来显示文件内容的十六进制编辑器)