从命令行生成SHA-256哈希
Contents
1. 概述
SHA-256 标准 用于文档完整性检查。它优于SHA-1 标准,因为后者已被证明可以为不同的文档生成相同的散列。
在本教程中,我们将使用*sha256sum * 命令查看SHA-256 哈希生成 。
2. 为文件生成 SHA-256 哈希
我们可以在两种模式下使用sha256sum命令;二进制和文本(默认)。在 Linux 上,两种模式都生成相同的 SHA-256 哈希,因此本教程通篇使用默认模式。
让我们创建一个包含一些简单文本的文本文件,并用它来演示命令的工作原理:
echo "https://blogdemo.com" > data.txt
现在让我们创建上述文件的 sha-256 哈希值:
sha256sum data.txt
86c5ceb27e1bf441130299c0209e5f35b88089f62c06b2b09d65772274f12057 data.txt
此生成的输出包括:
- 哈希和——前 65 个字符
- 空间
- 星号(仅在二进制模式下)
- 文件的路径或只是文件的名称
我们还可以为目录中的文件生成哈希:
sha256sum /path/to/data.txt > checksum
cat checksum
86c5ceb27e1bf441130299c0209e5f35b88089f62c06b2b09d65772274f12057 /path/to/data.txt
3.验证文件完整性
让我们使用存储在校验和文件中的散列来验证我们散列的data.txt文件的 完整性:
sha256sum --check checksum
data.txt: OK
接下来我们修改data.txt中包含的信息来模拟一个失败的测试。我们将使用sed 命令将“https”替换为“http”:
sed -i 's/https/http/' data.txt
最后,我们再次检查文件的完整性:
sha256sum --check checksum
data.txt: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
3.1. 处理多个文件
让我们在另一个文件的校验和文件中添加另一个条目。我们将通过向新文件添加简单文本、为该新文件生成摘要并将其附加到校验和文件来完成此操作:
echo "https://google.com" > data2.txt
sha256sum data2.txt >> checksum
如果现在我们对校验和文件中的所有条目进行完整性测试,它会处理每个条目,告诉我们哪些文件未通过测试,哪些通过:
sha256sum --check checksum
data.txt: FAILED
data2.txt: OK
sha256sum: WARNING: 1 computed checksum did NOT match