如何在 FreeBSD 上检查哈希和文件?

如何在 FreeBSD 上检查哈希和文件?

情况

我使用的是没有 GUI 的 FreeBSD 11.2。我是 BSD 系统的新手。

假设我们SHA512SUM在 FreeBSD 上生成了一个文件:

sha512 encrypt-file-aes256 decrypt-file-aes256 > SHA512SUM

它看起来与 Linux 格式不同,在 Linux 中可以使用--tagswitch 生成该格式:

SHA512 (encrypt-file-aes256) = 9170caaa45303d2e5f04c21732500980f3b06fc361018f953127506b56d3f2f46c95efdc291e160dd80e39b5304f327d83fe72c625ab5f31660db9c99dbfd017
SHA512 (decrypt-file-aes256) = 893693eec618542b0b95051952f9258824fe7004c360f8e6056a51638592510a704e27b707b9176febca655b7df581c9a6e2220b6511e8426c1501f6b2dd48a9

问题

我如何检查这个文件?--check里面没有选项手册页


进步

到目前为止,我只能通过硬编码哈希和来手动测试单个文件:

sha512 -c "9170caaa45303d2e5f04c21732500980f3b06fc361018f953127506b56d3f2f46c95efdc291e160dd80e39b5304f327d83fe72c625ab5f31660db9c99dbfd017" encrypt-file-aes256 && echo $?

在脚本编写方面,我还没有看到自动检查整个文件的方法SHA512SUM

请注意,在我的例子中,它可能包含比这两个文件更多的文件。

答案1

您可以使用shasum(手册页)工具,它可以-c选择检查校验和文件,并且是多种校验和算法的前端,包括SHA-512

您可以使用如下命令来检查这两个文件:

$ shasum -a 512 -c SHA512SUM.sha512sum

shasum工具只能解析与以下生成的格式兼容的输出格式sha512sum(该工具通常随 Linux 发行版一起提供。)

您可以使用一个简单的命令将 BSD 风格的校验和文件转换为 Linux 风格的文件sed

$ sed -ne 's/^SHA512 (\(.*\)) = \(.*\)/\2  \1/p' SHA512SUM >SHA512SUM.sha512sum

(尽管如果您自己生成校验和,那么也使用它shasum来生成它们是一个不错的选择,也与 Linux 上的工具兼容。)

shasum工具由 FreeBSD 端口提供p5-Digest-SHA,可以pkg通过运行以下命令进行安装:

$ sudo pkg install p5-Digest-SHA

相关内容