Linux 上的 SHASUM 命令
shasum 用于计算 SHA 消息摘要、加密校验和或加密哈希码。对于那些不知道的人来说,消息摘要是消息的固定大小的哈希值。消息摘要用私钥加密以形成数字签名。消息摘要有两个重要方面:
它们产生的哈希值实际上是不可能反转的。因此,它们是独一无二的。在计算上不可能找到具有相同 MD(消息摘要)值的两个文件。
如果我们稍微改变原始消息,新的 MD 值将发生显着变化。
消息摘要算法有很多种,例如MD2、MD4、MD5、SHA、SHA-1等。 MD 系列由 Ronald Rivest 开发。 1993年,NIST和NSA推出了SHA,并于1995年进一步修订。SHA-1算法是16位消息摘要,是SHA的后继者。对于 128、192 和 256 位消息摘要,使用 SHA-256、SHA-384 和 SHA-512。
SHA 变体的比较
虽然 SHA 与 MD5 相比速度较慢,但它更安全。许多公司已经放弃使用 SHA-1。由于容易受到碰撞攻击,SHA-2 包括 SHA-256、SHA-384,SHA-512 作为 SHA-1 的后继者出现。它被认为比 SHA-1 更安全。大多数组织现在都在部署 SHA-256。
在这里,我们列出了 SHA 变体:
SHA-256 — 生成 32 字节的摘要SHA-384 — 生成 48 字节的摘要SHA-512 — 生成 64 字节的摘要
实际操作 Shasum 命令
现在让我们把注意力转向 shasum 的使用方法。让我们创建一个新文件并对其应用各种 shasum 操作。
我们使用“cat”命令来创建示例文本并将其插入其中:
准备好演示文件后,我们现在将执行不同的 shasum 操作:
1. 要计算文件的 SHA 校验和,请使用以下格式:
默认情况下,上一个命令生成 sha1sum。因此,对于我们的 demo.txt 文件,以下两个命令将生成相同的校验和值:
$ sha1sum demo.txt
正如您在上图中看到的,两个校验和是相同的。
2. 要计算 sha1sum 之外的算法的 SHA 校验和,请使用“-a”选项并指定要使用的 SHA。例如,要将 SHA-256 与 demo.txt 一起使用,命令将为:
或者,我们也可以使用:
同样,我们可以指定 SHA 的其他变体。
3. 随着 SHA 变体的增加,校验和值的大小不断增加。例如,考虑 demo.txt 具有 SHA-1、SHA-256 和 SHA-512 的三个校验和值:
因此,最好将这些值保存到某些文件中。只需将前面的命令修改为:
使用 cat 命令验证文件的内容:
同样,我们可以将多个值保存到前一个文件中。例如,要添加 SHA-512 值,请将前面的命令修改为:
4. 验证文件的完整性:我们可以通过查看文件的 sha 校验和值来检查文件是否已被修改。对于我们的 demo.txt 文件,创建一个校验和值并使用以下命令保存它:
现在,通过运行以下命令检查 demo.txt 文件的完整性:
到目前为止,该文件完好无损,没有被修改。现在,让我们将一些数据附加到 demo.txt 中:
现在,检查文件完整性:
现在,文件修改时完整性检查失败。
4. 从包含 SHA 校验和的文件中检查多个文件的完整性。现在,我们将不同文件的 SHA 总和值存储在一个公共文件中并检查其完整性。创建以下三个文件:demo1.txt、demo2.txt 和 demo3.txt。
现在,为每个生成 SHA256 总和值并将它们存储在文件“keys.txt”中。
现在,对以前的文件运行完整性检查:
让我们修改 demo2.txt,添加一些文本并重新检查完整性:
$ sha256sum -c keys.txt
修改后,我们可以看到文件demo2.txt的校验和失败。
5. 我们还可以通过使用“-t”选项来使用文本模式。通过这种方式,我们可以在控制台上生成文本的 SHA 值。
现在,输入文本并在完成后按“Ctrl+d”。
结论
在本指南中,我们讨论了如何使用“shasum”命令检查文件的完整性。我们还介绍了消息摘要以及 SHA 变体的简要比较。有关 shasum 的更多信息可以在手册页中找到。我们希望您觉得这篇文章有帮助。查看其他 Linux 提示文章以获取更多提示和信息。