📅  最后修改于: 2023-12-03 15:17:21.056000             🧑  作者: Mango
Linux 常用的校验和算法之一是 SHA256,它非常适合用于验证文件的完整性。本文将介绍如何在 Shell/Bash 中计算文件的 SHA256 校验和,并与预期值进行比较,以确保文件是否被篡改。
Shell/Bash 中可以使用 sha256sum
命令来计算文件的 SHA256 校验和。该命令会读取文件内容并生成校验和值,然后将其显示在终端上。
sha256sum file.txt
输出将包括校验和值和文件名,如下所示:
1f0afaa3ecce8fcfe91bac13a1aef832b7fc2b0d621e7e2d5e770fe7c5f7394d file.txt
上述命令的输出表示 file.txt
的 SHA256 校验和为 1f0afaa3ecce8fcfe91bac13a1aef832b7fc2b0d621e7e2d5e770fe7c5f7394d
。
计算文件的 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 系统。