下载文件时检查并验证MacOS X的md5/sha1/sha256校验和

时间:2020-01-09 14:16:57  来源:igfitidea点击:

从Internet下载文件时,如何验证Apple MacOS X的md5或sha1或sha256校验和?
在某些情况下,匹配下载文件的校验和是必要且有用的。
主要原因是要确保可以验证传输正常。
传输过程中下载的文件没有损坏或修改。
您需要使用shasum命令来计算或验证SHA消息摘要。

校验和只不过是代表一段已存储或传输的数字数据中正确数字之和的数字,以后可以与之进行比较以检测数据中的错误。

用于检查和验证MacOS X的md5/sha1/sha256校验和的语法

要打印或检查SHA校验和,请使用以下语法:

shasum -a algorithm filename
shasum -a algorithm -c input.txt

其中:

  • -a algorithm:可以是1(默认),224、256、384和512。
  • -c input.txt:对照通常存储在文本文件中的给定列表检查SHA总和。

例子

打开终端应用程序,并使用wget命令获取最新的固件:

$ wget http://www.mediafire.com/file/ff04qcobujqek27/RT-AC87U_380.66_6.zip

验证文件:

$ ls -lh RT-AC87U_380.66_6.zip

使用unzip命令解压缩文件:

$ unzip RT-AC87U_380.66_6.zip

输出示例:

Archive:  RT-AC87U_380.66_6.zip
  inflating: RT-AC87U_380.66_6.trx   
  inflating: README-merlin.txt       
  inflating: Changelog.txt           
  inflating: sha256sum.sha256

您的固件文件名为RT-AC87U_380.66_6.trx。
您可以使用sha256sum.sha256文件验证其完整性,如下所示:

$ shasum -a 256 -c sha256sum.sha256

输出示例:

RT-AC87U_380.66_6.trx: OK

如果文件在传输过程中被修改,或者被远程服务器上的恶意软件修改,您将收到一条错误消息,内容如下:

$ shasum -a 256 -c sha256sum.sha256

输出示例:

RT-AC87U_380.66_6.trx: FAILED
shasum: WARNING: 1 computed checksum did NOT match

您必须使用rm命令立即删除文件:

$ rm RT-AC87U_380.66_6.zip RT-AC87U_380.66_6.trx

要为名为foo.iso的iso文件计算SHA-256校验和,请运行:

$ shasum -a 256 foo.iso

验证SHA-1校验和

语法为:

$ shasum -a 1 -c input.txt

或者

$ shasum -a 1 filename

或者

$ shasum -a 1 centos.iso

要查看有关shasum命令的更多信息,请执行:

$ shasum --help

输出示例:

Usage: shasum [OPTION]... [FILE]...
Print or check SHA checksums.
With no FILE, or when FILE is -, read standard input.
 
  -a, --algorithm   1 (default), 224, 256, 384, 512, 512224, 512256
  -b, --binary      read in binary mode
  -c, --check       read SHA sums from the FILEs and check them
  -t, --text        read in text mode (default)
  -U, --UNIVERSAL   read in Universal Newlines mode
                        produces same digest on Windows/Unix/Mac
  -0, --01          read in BITS mode
                        ASCII '0' interpreted as 0-bit,
                        ASCII '1' interpreted as 1-bit,
                        all other characters ignored
  -p, --portable    read in portable mode (to be deprecated)
 
The following two options are useful only when verifying checksums:
  -s, --status      don't output anything, status code shows success
  -w, --warn        warn about improperly formatted checksum lines
 
  -h, --help        display this help and exit
  -v, --version     output version information and exit
 
When verifying SHA-512/224 or SHA-512/256 checksums, indicate the
algorithm explicitly using the -a option, e.g.
 
  shasum -a 512224 -c checksumfile
 
The sums are computed as described in FIPS PUB 180-4.  When checking,
the input should be a former output of this program.  The default
mode is to print a line with checksum, a character indicating type
(`*' for binary, ` ' for text, `U' for UNIVERSAL, `^' for BITS, `?'
for portable), and name for each FILE.
 
Report shasum bugs to [email protected]

另一个选择:openssl命令

您可以如下使用openssl命令来获取和验证校验和。

使用openssl命令验证SHA-1校验和

$ openssl sha1 filename
$ openssl sha1 ~/isoimages/unetbootin-mac-625.dmg 
`SHA1(/Users/veryv/isoimages/unetbootin-mac-625.dmg)= 8a44b5095ed9b05f8a2643a5df91e932467a0e7`

使用openssl命令验证SHA256校验和

$ openssl dgst -sha256 filename
$ openssl dgst -sha256 ~/isoimages/CentOS-7-x86_64-Minimal-1611.iso 
`SHA256(/Users/veryv/isoimages/CentOS-7-x86_64-Minimal-1611.iso)= 27bd866242ee058b7a5754e83d8ee8403e216b93d130d800852a96f41c34d86a`

使用openssl命令验证MD5校验和

$ openssl md5 filename
$ openssl md5 /etc/passwd
`MD5(/etc/passwd)= 5e7f80888f3d491c4963881364048c24`