📜  linux sha256 校验和 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:17:21.056000             🧑  作者: Mango

Linux SHA256 校验和 - Shell/Bash

Linux 常用的校验和算法之一是 SHA256,它非常适合用于验证文件的完整性。本文将介绍如何在 Shell/Bash 中计算文件的 SHA256 校验和,并与预期值进行比较,以确保文件是否被篡改。

计算文件的 SHA256 校验和

Shell/Bash 中可以使用 sha256sum 命令来计算文件的 SHA256 校验和。该命令会读取文件内容并生成校验和值,然后将其显示在终端上。

sha256sum file.txt

输出将包括校验和值和文件名,如下所示:

1f0afaa3ecce8fcfe91bac13a1aef832b7fc2b0d621e7e2d5e770fe7c5f7394d  file.txt

上述命令的输出表示 file.txt 的 SHA256 校验和为 1f0afaa3ecce8fcfe91bac13a1aef832b7fc2b0d621e7e2d5e770fe7c5f7394d

比较 SHA256 校验和

计算文件的 SHA256 校验和之后,您需要将其与预期的校验和进行比较,以确保文件是否被篡改。在 Shell/Bash 中,可以使用 if 语句来比较校验和值。

以下示例程序演示了如何计算文件的 SHA256 校验和并与预期值进行比较。将文件路径和预期值替换为实际值后,可以将此示例程序保存为 Shell 脚本并执行它。

#!/bin/bash

# 计算文件的 SHA256 校验和
checksum=$(sha256sum /path/to/file | awk '{print $1}')

# 预期的校验和值
expected_checksum="1f0afaa3ecce8fcfe91bac13a1aef832b7fc2b0d621e7e2d5e770fe7c5f7394d"

# 比较校验和值
if [[ $checksum == $expected_checksum ]]; then
    echo "文件未被篡改"
else
    echo "文件已被篡改"
fi

程序输出应显示 "文件未被篡改" 或 "文件已被篡改"。

结论

本文介绍了如何使用 sha256sum 命令计算文件的 SHA256 校验和,并使用 Shell/Bash 编写程序通过比较校验和值来验证文件的完整性。此方法跨平台,适用于基于 Linux 的操作系统和其他 Unix-like 系统。