在Ubuntu 14.04,sha256sum从coreutils作品如我所料:
echo 879dd0d7637876be4796f7e6f194a111d21088be85cfe717fc97e2e7f05e79d2 /tmp/myfile | sha256sum -c
/tmp/myfile: OK
Run Code Online (Sandbox Code Playgroud)
但是,在 Debian Wheezy 上使用完全相同的文件执行完全相同的命令失败:
sha256sum: standard input: no properly formatted SHA256 checksum lines found
Run Code Online (Sandbox Code Playgroud)
我不明白这个。如何在 Debian 的 shell 脚本中可靠地验证校验和?
在 Ubuntu 14.04 上:
? sha256sum --version
sha256sum (GNU coreutils) 8.21
Run Code Online (Sandbox Code Playgroud)
关于 Wheezy:
$ sha256sum --version
sha256sum (GNU coreutils) 8.13
Run Code Online (Sandbox Code Playgroud)
两个操作系统上的联机帮助页都说:
SYNOPSIS
sha256sum [OPTION]... [FILE]...
DESCRIPTION
Print or check SHA256 (256-bit) checksums. With no FILE,
or when FILE is -, read standard input.
[...]
-c, --check
read SHA256 sums from the FILEs and check them
Run Code Online (Sandbox Code Playgroud)
Mic*_*mer 50
它关心间距。如果你运行:
sha256sum /dev/null
Run Code Online (Sandbox Code Playgroud)
你得到
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /dev/null
Run Code Online (Sandbox Code Playgroud)
(两个空格)。当你这样使用时echo,单词之间只有一个空格。
版本 8.13 需要其输出的确切格式。如果您使用:
echo "$SUM $FILE" | sha256sum -c
Run Code Online (Sandbox Code Playgroud)
(再次,两个空格)它应该工作。较新的版本不关心有多少空间,因此它也适用于它们。
| 归档时间: |
|
| 查看次数: |
23714 次 |
| 最近记录: |