哈希校验
哈希校验的工具包主要有两个系列,一个是 GNU 系的 md5sum
、shaXXXsum
,另一个是 BSD/macOS 系的 md5
、shasum
。个人认为 GNU 系更好用些,因此我在 macOS 也使用 GNU 系列的工具包。
GNU 系
计算
md5sum <file>
sha1sum <file>
sha256sum <file>
sha512sum <file>
例:
sha256sum * > SHA256SUMS # 将目录中所有文件的 SHA-256 校验和写到 SHA256SUMS 文件中
校验
md5sum -c MD5SUMS # 使用 MD5 算法逐个检验 MD5SUMS 文件中的条目
sha1sum -c SHA1SUMS # 使用 SHA-1 算法逐个检验 SHA1SUMS 文件中的条目
sha256sum -c SHA256SUMS
sha512sum -c SHA512SUMS
BSD/macOS 系
计算
md5 <file> # MD5
shasum -a 1 <file> # SHA-1
shasum -a 256 <file> # SHA-256
例:
shasum -a 512 * > SHA512SUMS
参考:如何在苹果 Mac 系统上使用 MD5\SHA1\SHA256\SHA512 等方式生成并验证下载文件签名
校验
shasum -a 512 -c SHA512SUMS # 使用 SHA-512 算法逐个检验 sum_file 中的文件项
md5
命令没有 -c
选项来验证校验和文件
Windows
在 Windows 上有 Get-FileHash
和 CertUtil
两款工具可用于计算哈希值。Get-FileHash
是一个专注于计算文件哈希值的 PowerShell cmdlet,输出易于在脚本中处理,而 CertUtil
是一个功能更为广泛的 Windows 命令行工具,除了哈希计算外,还能管理证书和密钥。
CertUtil
CertUtil -hashfile <file> MD5
CertUtil -hashfile <file> SHA1
CertUtil -hashfile <file> SHA256
Get-FileHash
Get-FileHash <file> -Algorithm MD5
哈希验证通用步骤
# 导入作者公钥
gpg --import author.asc
# 验证哈希签名
gpg --verify file.sha512.asc # Good signature from "xxx" [unknown]
# 验证哈希
sha512sum -c file.sha512 # file: OK
echo "file intergrity verified"