1

我会尽力描述我的困境。

我正在编写一个 python 脚本,它将获取一个输入文件并对其执行 SHA-256 哈希。

如果我获取原始二进制图像并通过命令提示符运行它(在我的 Mac 上:shasum -a 256 somefile.bin),我会得到“正确的”摘要:“bda1ca ...”

我通过在线计算器运行了这个二进制文件并得到了相同的结果。

如果我在十六进制编辑器中打开此哈希,将所有字节提取到我的剪贴板并将它们粘贴到 SHA256 计算器中,我会得到不同的结果:'689035...'

我在这里想念什么?我试过上/下现金,每个字节之间的空格。我不确定还能尝试什么。

这个问题开始是因为我在 Python 中实现它,但在我担心代码之前,我试图理解为什么这是不同的。

4

1 回答 1

2

当您在键盘上从十六进制编辑器中复制“字节”时,您很可能只是在复制它的字符串表示形式。

也许这些命令会帮助你得到它:

$ 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 是我用来显示文件内容的十六进制编辑器)

于 2016-04-12T18:27:41.933 回答