如果 coreutils 中没有 sha3sum 命令,如何生成 SHA3?

pep*_*ite 23 linux bsd hashsum checksum

sha1sum还是sha512sum对的平均Linux系统,。

但是sha3sum可以生成SHA-3命令的命令在哪里呢?

Eva*_*oll 19

您可以使用它OpenSSL来执行此操作,以下使用来自 Ubuntu 18.10 的 OpenSSL 1.1.1 2018 年 9 月 11 日进行演示。

OpenSSL> help
...
Message Digest commands (see the `dgst' command for more details)
blake2b512        blake2s256        gost              md4               
md5               rmd160            sha1              sha224            
sha256            sha3-224          sha3-256          sha3-384          
sha3-512          sha384            sha512            sha512-224        
sha512-256        shake128          shake256          sm3
Run Code Online (Sandbox Code Playgroud)

所以你可以看到它支持sha3-{224,256,384,512}.

要校验一个文件,

openssl dgst -sha3-512 /bin/echo
SHA3-512(/bin/echo)= c9a3baaa2aa3d667a4ff475d893b3e84eb588fb46adecd0af5f3cdd735be88c62e179f98dc8275955da4ee5ef1dc7968620686c6f7f63f5b80f10e43bc1f00fc
Run Code Online (Sandbox Code Playgroud)

你可以校验一个字符串

printf "foobar" | openssl dgst -sha3-512
Run Code Online (Sandbox Code Playgroud)

您还可以更改输出格式

  • -c 用分隔冒号打印摘要
  • -r 以 coreutils 格式打印摘要

  • 请注意,对于所有使用“echo”并想知道为什么他们无法获得正确结果的人:确保传递“-n”以避免换行符陷阱 (3认同)

Ste*_*itt 18

有许多实现,例如 Mattias Andréesha3sumPerl Digest-SHA3 模块。在 Debian 中,安装libdigest-sha3-perl; 在 Fedora 中,安装sha3sum;这两者都将提供sha3sum基于 Perl 模块的命令,其行为方式与您习惯的二进制文件相同。


小智 7

RHash应用程序可以做到:

rhash --sha3-256 yourfile
Run Code Online (Sandbox Code Playgroud)

更多信息: rhash -h

它适用于 Linux、BSD 和 Windows


小智 5

就其价值而言,Busybox 自 2013 年以来就已经拥有了它的代码

  • 但由于 NIST 直到 2015 年 8 月 5 日才发布最终的 SHA3 规范,Busybox 的实现一定是基于该规范的初步版本......因此 Busybox [需要在 2016 年进行修复,以符合该规范的最终版本] SHA3​​ 算法规范](https://git.busybox.net/busybox/commit/?id=71a090f1871f165ebf3c31f733b36aafca71a6b4)。 (4认同)