情况
我使用的是没有 GUI 的 FreeBSD 11.2。我是 BSD 系统的新手。
假设我们SHA512SUM
在 FreeBSD 上生成了一个文件:
sha512 encrypt-file-aes256 decrypt-file-aes256 > SHA512SUM
它看起来与 Linux 格式不同,在 Linux 中可以使用--tag
switch 生成该格式:
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