Linux 的 sha256sum 命令是一个用于计算和校验文件 SHA-256 哈希值的实用工具。SHA-256(Secure Hash Algorithm 256-bit)是一种密码学哈希函数,属于 SHA-2 家族,能够生成 256 位(32 字节)的哈希值,通常以 64 个十六进制字符的形式表示。
基本用法
-
计算单个文件的哈希值 :
sha256sum filename这将输出文件的 SHA-256 哈希值和文件名,例如:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 filename -
计算多个文件的哈希值 :
sha256sum file1 file2 file3输出将包含每个文件的哈希值和文件名,每行一个。
-
将哈希值输出到文件 :
sha256sum file1 file2 > checksums.sha256这会将哈希值保存到
checksums.sha256文件中,便于后续校验。 -
校验文件的完整性 :
sha256sum -c checksums.sha256此命令会读取
checksums.sha256文件中的哈希值,并与当前文件的哈希值进行比对。如果文件未被修改,会显示OK;否则会显示FAILED。
高级用法
-
从标准输入计算哈希值 :
echo "text" | sha256sum或者
sha256sum -然后输入内容,按
Ctrl+D结束输入。 -
忽略文件中的空格或格式问题:
bashsha256sum --ignore-missing -c checksums.sha256这在校验时忽略不存在的文件。
-
仅显示哈希值(不显示文件名):
bashsha256sum file | awk '{print $1}'
应用场景
-
文件完整性校验:
- 下载文件后,通过比对提供的 SHA-256 哈希值确保文件未被篡改。
- 软件发布时,提供 SHA-256 哈希值供用户校验。
-
数据一致性检查:
- 备份文件时,生成哈希值以确保备份与原始文件一致。
- 在文件传输或存储后,校验文件是否完整。
-
安全验证:
- 验证密码或敏感数据的哈希值,确保其未被修改。
注意事项
- 哈希碰撞:虽然 SHA-256 碰撞概率极低,但在极高安全要求的场景中,可能需要结合其他验证方式。
- 性能:对于大文件,计算哈希值可能需要一定时间。
- 二进制与文本模式:在某些系统中,文件的读取模式(二进制或文本)可能影响哈希值的结果,需确保一致性。
示例
-
生成哈希值:
bashsha256sum important_document.pdf输出:
a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e important_document.pdf -
校验哈希值:
bashsha256sum -c checksums.sha256如果文件完好,输出:
important_document.pdf: OK
sha256sum 是一个简单但强大的工具,广泛应用于文件校验、数据完整性验证和安全审计中。