如何检查文件的 SHA1 哈希值?

Lin*_*ity 300 checksums

如何检查文件的 SHA1 哈希值?

Rin*_*ind 343

sha1sum

打印或检查 SHA1(160 位)校验和。没有 FILE 或 FILE 为 - 时,读取标准输入。

sha1sum {file}
Run Code Online (Sandbox Code Playgroud)

如果要将文件与其 sha1sum 输出一起发送,请将输出重定向到文件:

sha1sum {file} > {file}.sha1
Run Code Online (Sandbox Code Playgroud)

发送两个文件,对方可以做一个...

sha1sum -c {file}.sha1
Run Code Online (Sandbox Code Playgroud)

它应该显示OK是否sha1正确。

  • 伟大的!但是当`{file}.sha1` 只包含哈希值而没有文件名(经常从互联网的各个角落下载)时,你如何运行`sha1sum -c`?我想出了 `for f in *.sha1; 做 echo "$(cat $f) ${f/.sha1/}"; 完成 | sha1sum -c`(注意双倍空格),但这 ** 必须** 简单得多。 (4认同)
  • @PiotrFindeisen - sha1sum 的输出是 `<hash> <full file path>` 所以有足够的信息让 sha1sum -c 知道要验证哪个文件 (4认同)
  • 或`shasum`——默认的SHA是(如果我是对的)SHA1。您还可以使用 `-a, --algorithm` 选项设置它:`shasum -a 1` (3认同)
  • 请原谅我的无知,但为什么检查文件总和这么难?我们不能简单地做`sha1sum <file_path> <the_expected_hash>`吗? (3认同)

小智 76

不创建本地文件:

$ sha1sum filename

8dd10000eb1b768800000e1d2fe1c3100005d2dc *filename
Run Code Online (Sandbox Code Playgroud)

要进行检查,请转到包含filename并运行以下命令的目录:

echo "8dd10000eb1b768800000e1d2fe1c3100005d2dc *filename" | sha1sum -c -
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,虽然我认为你不应该在那里放 *。这是一个具体的例子:```echo 'b78bb50bdac5ec8c108f34104f788e214ac23635 raspbian.zip' | sha1sum -c -``` 这将检查当前目录中的文件名 raspbian.zip。 (4认同)
  • 这应该是公认的答案。创建文件是一个不必要的中间环节。 (2认同)
  • 以防万一有人来到这里并使用 mac,从 OSX 10.13.3 开始,文件名和 shasum 的输出之间有两个空格。当我只使用一个时,shasum -c 出现了不正确的格式错误 (2认同)

Ami*_* KK 22

它非常简单。

导航到终端并输入:

sha1sum  filename
Run Code Online (Sandbox Code Playgroud)

确认 sha1 哈希使用:

sha1sum -c filename
Run Code Online (Sandbox Code Playgroud)

  • 确认 sha1 哈希有什么作用? (4认同)

小智 12

对于那些使用 mac 并且没有安装 coreutils/sha1sum 的人。

openssl sha1 <file>
Run Code Online (Sandbox Code Playgroud)

例子:

$ openssl sha1 `mktemp`
SHA1(/tmp/tmp.jkyfOWma3t)= da39a3ee5e6b4b0d3255bfef95601890afd80709
Run Code Online (Sandbox Code Playgroud)

  • 这是askubunutu,所以在Mac上会是题外话;)但这也应该在ubuntu上工作,所以+1 (5认同)