macOS 计算校验和

Undefined443 / 2024-02-12 / 原文

shasum -a 256 filename  # 计算文件的 SHA 256 校验和
shasum -a 256 -c checksum.txt  # 对 checksum.txt 中的校验和进行验证

checksum.txt 文件的例子:

483a8203d11053fe18f89bb4d95aaf97c4d6e4203a546d0f81efe19c5b221638  BTSync-1.4.111.exe
f3b3095d5b7021157ada032040144e715621585864e979ba53a4697be8918ae3  btsync_i386-1.4.111.tar.gz
6ea03cd2f60177baca58c701b80e1abf44b7c42fc4ec5b8bcfd3b266876e832f  btsync_x64-1.4.111.tar.gz
758cb2e3b21a21297a6fc46ca36999b2c7c170939b366e012af62a2ca953179c  btsync_glibc23_i386-1.4.111.tar.gz
921c47be0f60a3c88e8452a1de5252b2cbf1c8280d57a011f400d3cb9df676cc  btsync_glibc23_x64-1.4.111.tar.gz
1c7df900e4a64d7f349605b3406c183399fb09a6b96278ae04817e2fcce0acf4  BTSync-1.4.111.dmg
c29133157b30ffbfb940a1c24da658779a35ed3e50b69c21b3d911a66434aa6f  btsync_android-1.4.65.apk

校验码和文件名之间有两个空格


下面是对 shasum --help 命令结果的翻译。

用法:shasum [选项]... [文件]...
打印或检查SHA校验和。
当没有文件,或者文件为"-"时,读取标准输入。

  -a, --algorithm      1(默认),224,256,384,512,512224,512256
  -b, --binary         以二进制模式读取
  -c, --check          从文件中读取SHA校验和并检查它们
      --tag            创建BSD风格的校验和
  -t, --text           以文本模式读取(默认)
  -U, --UNIVERSAL      以通用换行符模式读取
                         在Windows/Unix/Mac上生成相同的摘要
  -0, --01             以BITS模式读取
                         ASCII '0' 解释为0位,
                         ASCII '1' 解释为1位,
                         忽略所有其他字符

以下五个选项仅在验证校验和时有用:
      --ignore-missing  对于缺失的文件不失败或报告状态
  -q, --quiet           对于每个成功验证的文件不打印OK
  -s, --status          不输出任何内容,状态码显示成功
      --strict          对格式不正确的校验和行退出非零
  -w, --warn            对格式不正确的校验和行发出警告

  -h, --help           显示此帮助并退出
  -v, --version        输出版本信息并退出

当验证SHA-512/224或SHA-512/256校验和时,使用-a选项明确指定算法,例如

  shasum -a 512224 -c 校验和文件

校验和是根据FIPS PUB 180-4中的描述计算的。在检查时,输入应为此程序的先前输出。默认模式是为每个文件打印一行校验和,一个表示类型的字符(对于二进制为`*`,对于文本为空格,对于通用为`U`,对于BITS为`^`)和名称。如果文件名包含换行符或反斜杠,则该行以`\\`字符开始,然后将其替换为两个字符序列`\n`和`\\`。

请将shasum错误报告给mshelor@cpan.org。