Linux 的 sha256sum 命令

Linux 的 sha256sum 命令是一个用于计算和校验文件 SHA-256 哈希值的实用工具。SHA-256(Secure Hash Algorithm 256-bit)是一种密码学哈希函数,属于 SHA-2 家族,能够生成 256 位(32 字节)的哈希值,通常以 64 个十六进制字符的形式表示。

基本用法

  1. 计算单个文件的哈希值 :
    sha256sum filename

    这将输出文件的 SHA-256 哈希值和文件名,例如:

    复制代码
    e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855  filename
  2. 计算多个文件的哈希值 :
    sha256sum file1 file2 file3

    输出将包含每个文件的哈希值和文件名,每行一个。

  3. 将哈希值输出到文件 :
    sha256sum file1 file2 > checksums.sha256

    这会将哈希值保存到 checksums.sha256 文件中,便于后续校验。

  4. 校验文件的完整性 :
    sha256sum -c checksums.sha256

    此命令会读取 checksums.sha256 文件中的哈希值,并与当前文件的哈希值进行比对。如果文件未被修改,会显示 OK;否则会显示 FAILED。

高级用法

  1. 从标准输入计算哈希值 :
    echo "text" | sha256sum

    或者
    sha256sum -

    然后输入内容,按 Ctrl+D 结束输入。

  2. 忽略文件中的空格或格式问题:

    bash 复制代码
    sha256sum --ignore-missing -c checksums.sha256

    这在校验时忽略不存在的文件。

  3. 仅显示哈希值(不显示文件名):

    bash 复制代码
    sha256sum file | awk '{print $1}'

应用场景

  1. 文件完整性校验:

    • 下载文件后,通过比对提供的 SHA-256 哈希值确保文件未被篡改。
    • 软件发布时,提供 SHA-256 哈希值供用户校验。
  2. 数据一致性检查:

    • 备份文件时,生成哈希值以确保备份与原始文件一致。
    • 在文件传输或存储后,校验文件是否完整。
  3. 安全验证:

    • 验证密码或敏感数据的哈希值,确保其未被修改。

注意事项

  • 哈希碰撞:虽然 SHA-256 碰撞概率极低,但在极高安全要求的场景中,可能需要结合其他验证方式。
  • 性能:对于大文件,计算哈希值可能需要一定时间。
  • 二进制与文本模式:在某些系统中,文件的读取模式(二进制或文本)可能影响哈希值的结果,需确保一致性。

示例

  1. 生成哈希值:

    bash 复制代码
    sha256sum important_document.pdf

    输出:

    复制代码
    a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e  important_document.pdf
  2. 校验哈希值:

    bash 复制代码
    sha256sum -c checksums.sha256

    如果文件完好,输出:

    复制代码
    important_document.pdf: OK

sha256sum 是一个简单但强大的工具,广泛应用于文件校验、数据完整性验证和安全审计中。

相关推荐
0+1116 小时前
Linux --从 poll 到 epoll多路转接
linux·服务器·1024程序员节
青瓦梦滋6 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
桌面运维家6 小时前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang133830890757 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻7 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
IpdataCloud8 小时前
批量查IP的API接口怎么选?免费API配额瓶颈与离线库本地批量方案实测
网络·网络协议·tcp/ip
2601_949847759 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_639906949 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗10 小时前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB10 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式