欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux和Mac下获取文件CRC/MD5/SHA1/SHA256

程序员文章站 2024-03-16 18:41:58
...

简介: Linux和Mac下获取文件CRC、MD5、hash、SHA1、SHA256值。

注: Linux和Mac下获取方式一致。

语法如下:

cksum 文件名    # CRC
md5sum 文件名   # 获取MD5
shasum 文件名   # 获取SHA1

# -a 支持可选值:1 (default), 224, 256, 384, 512, 512224, 512256
shasum -a 256 文件名   #获取SHA256

cksum – CRC

Linux cksum命令用于检查文件的CRC是否正确。确保文件从一个系统传输到另一个系统的过程中不被损坏。
CRC是一种排错检查方式,该校验法的标准由CCITT所指定,至少可检测到99.998%的已知错误。
指定文件交由指令"cksum"进行校验后,该指令会返回校验结果供用户核对文件是否正确无误。若不指定任何文件名称或是所给予的文件名为"-",则指令"cksum"会从标准输入设备中读取数据。

语法

cksum [--help][--version][文件...]

实例

使用指令"cksum"计算文件"testfile1"的完整性,输入如下命令:

$ cksum testfile1     

以上命令执行后,将输出校验码等相关的信息,具体输出信息如下所示:

1263453430 78 testfile1         //输出信息 

上面的输出信息中,"1263453430"表示校验码,"78"表示字节数。

md5sum

MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。

md5sum命令采用MD5报文摘要算法(128位)计算和检查文件的校验和。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。

语法

# md5sum (选项) (参数)

选项

-b或--binary:  把输入文件作为二进制文件看待。
-t或--text:    把输入的文件作为文本文件看待(默认)。
-c或--check:   用来从文件中读取md5信息检查文件的一致性。(不细说了参见info)
--status:      这个选项和check一起使用,在check的时候,不输出,而是根据返回值表示检查结果。
-w或--warn:    在check的时候,检查输入的md5信息又没有非法的行,如果有则输出相应信息。

参数

文件:指定保存着文件名和校验和的文本文件

示例

1) 查看一个字符串的md5值

在线查看字符串的md5值地址: https://md5jiami.51240.com/

linux终端里查看出来的md5值都是"32位小写"格式的值

[[email protected] ~]# echo -n "hello world"|md5sum
5eb63bbbe01eeed093cb22bb8f5acdc3  -
 
[[email protected] ~]# echo -n "hello world"|md5sum |cut -d" " -f1
5eb63bbbe01eeed093cb22bb8f5acdc3

命令解释:
md5sum: 显示或检查 MD5(128-bit) 校验和,若没有文件选项,或者文件处为"-",则从标准输入读取。
echo -n : 不打印换行符。(注意: echo -n 后面的-n参数必须加上, 这样算出的字符串的md5值才正确)
cut: cut用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件。 -d 指定与空格和tab键不同的域分隔符。-f1 表示第一个域。

2) 查看一个文件的md5值

[[email protected] ~]# echo "test md5" > kevin.sql
 
查看并获取这个文件的md5值
[[email protected] ~]# md5sum kevin.sql
170ecb8475ca6e384dbd74c17e165c9e  kevin.sql
 
[[email protected] ~]# md5sum kevin.sql|cut -d" " -f1
170ecb8475ca6e384dbd74c17e165c9e
 
生产这个个文件的md5值
[[email protected] ~]# md5sum kevin.sql > kevin.sql.md5
 
检查两个文件是否一样,可以通过比较两个文件的md5值 (后续可以用这个方法来检验kevin.sql文件是否被修改)[[email protected] ~]# md5sum kevin.sql
170ecb8475ca6e384dbd74c17e165c9e  kevin.sql
 
[[email protected] ~]# cat kevin.sql.md5
170ecb8475ca6e384dbd74c17e165c9e  kevin.sql

shasum

打印或检查SHA校验和。

语法:shasum [OPTION]... [FILE]...

当省略文件参数或文件为-时,从标准输入读取待校验的文本。

选项详解

  -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]

参考

  1. https://www.cnblogs.com/kevingrace/p/10201723.html
(完)