当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 Windows 中创建校验和并验证文件完整性

作者:精品下载站 日期:2024-12-14 13:05:42 浏览:15 分类:玩电脑

在 Windows 中创建校验和并验证文件完整性


您是否下载了文件后才发现该文件已损坏或更改?确认文件完整性的最佳方法是验证文件的校验和或哈希值。幸运的是,有多种方法可以在 Windows 中验证文件的校验和。

继续阅读,因为您将了解在 Windows 中免费计算文件校验和的多种方法!了解使用内置 Windows 工具和第三方实用程序生成文件的校验和值。

在本文中,您将了解如何使用五种不同的工具在 Windows 中创建校验和。最后,您绝对应该知道如何在 Windows 中创建哈希!

先决条件

由于这是一篇操作方法文章,因此您将遵循边做边学的方法。本文中使用的一些工具是内置的或由 Microsoft 提供的;有些也来自第三方来源。要继续操作,请确保您至少有一台运行 Windows 10 或至少运行 Windows Server 2012 的计算机。

将根据需要提供每种生成校验和的方法的先决条件。

文件校验和完整性验证器 (FCIV)

文件校验和完整性验证程序 (FCIV) Microsoft 工具最初是在 Windows Server 2012 R2 中引入的,并且可用于所有未来版本。

假设您已将 FCIV 工具安装在 C:\Tools\fciv.exe 中。在命令提示符或 PowerShell 提示符中运行以下命令以生成文件 VSCodeUserSetup- 的 MD5 校验和x64-1.52.1.exe。如果您的文件位于其他位置,请适当修改位置。

C:\Tools\fciv.exe C:\downloads\VSCodeUserSetup-x64-1.52.1.exe

运行 FCIV 命令后,您将看到类似的结果,如下面的屏幕截图所示。如您所见,默认情况下,fciv.exe 命令为给定文件生成 MD5 哈希值。

[玩转系统] 在 Windows 中创建校验和并验证文件完整性

FCIV 只能生成 MD5 或 SHA-1 文件哈希值。

既然您已经计算了 MD5 校验和,为什么不同时生成文件的 SHA-1 校验和呢?要创建上例中使用的同一文件的 SHA-1 校验和,请将 sha1 选项添加到现有命令的末尾。如下面的屏幕截图所示,为与之前相同的文件生成 SHA-1 哈希值。

C:\Tools\fciv.exe C:\downloads\VSCodeUserSetup-x64-1.52.1.exe -sha1

[玩转系统] 在 Windows 中创建校验和并验证文件完整性

好工作!您已创建 MD5 和 SHA-1 校验和值。为什么不同时生成 MD5 和 SHA-1 哈希值?不要使用 sha1 选项,而是使用 both

C:\Tools\fciv.exe C:\downloads\VSCodeUserSetup-x64-1.52.1.exe -both

生成的哈希值标记为 MD5 和 SHA-1。当您需要生成 MD5 和 SHA-1 哈希值时,使用 both 参数可以节省时间。

[玩转系统] 在 Windows 中创建校验和并验证文件完整性

虽然 FCIV 是计算文件哈希值的便捷工具,但 FCIV 较旧,并且哈希算法仅限于 MD5 和 SHA-1。微软正式声明 FCIV 是一个不受支持的命令行工具。尽管如此,在没有其他工具的情况下,FCIV 仍然可以作为一个很好的替代方案。

此时,您已使用 fciv.exe 工具创建了 MD5 和 SHA-1 哈希值。到目前为止你觉得怎么样?我知道您已经准备好学习下一个工具了。

使用 Certutil

Certutil 是另一个在 Windows 中生成文件校验和的优秀工具。确切的程序名称是 certutil.exe,它是开箱即用的。

certutil.exe 的主要用途是用于证书。但是,certutil.exe 具有使用以下哈希算法在 Windows 中创建文件校验和的功能:

  • MD2
  • MD4
  • MD5
  • SHA1
  • SHA256
  • SHA384
  • SHA512

让我们看看它是如何工作的。

使用如下所示的语法启动 PowerShell 或命令提示符以开始计算文件校验和。

certutil.exe -hashfile [Path to File] [Hash Algorithm]

在下面的示例中,certutil.exe 生成文件 C:\downloads\VSCodeUserSetup-x64-1.52.1.exe 的 SHA-256 哈希,如结果截图。

certutil.exe -hashfile "C:\downloads\VSCodeUserSetup-x64-1.52.1.exe" SHA256

[玩转系统] 在 Windows 中创建校验和并验证文件完整性

您现在知道如何使用 certutil.exe 创建文件校验和。为了练习,请尝试使用所有其他可用算法生成文件的哈希值。继续阅读以了解如何使用 Get-FileHash 和 PowerShell 生成文件哈希!

您是否知道创建 SSL 证书时也会使用哈希算法(例如 SHA-256)?

使用 PowerShell Get-FileHash Cmdlet

自本文开始以来,您一直在阅读并使用命令行工具在 Windows 中创建文件校验和。您将学习如何使用的另一个命令行工具是 Get-FileHash PowerShell cmdlet。

在使用 Get-FileHash 之前,请参阅下面的语法来熟悉可用的参数。使用 Path 参数指定目标文件,使用 Algorithm 参数指示要使用的哈希算法。

Get-FileHash -Path [path to file] -Algorithm [Hash Algorithm]

下面列出了 Get-FileHash 的可用哈希算法。您会注意到哈希算法的选择与 FCIV 和 CertUtil 提供的不同。此外,不再包含较旧且更易受攻击的算法,例如 MD1 和 MD4 算法。

  • SHA1
  • SHA256
  • SHA384
  • SHA512
  • MAC三重DES
  • MD5
  • 成熟的MD160

以下命令使用 SHA-256 算法计算文件 VSCodeUserSetup-x64-1.52.1.exe 的哈希值。在 PowerShell 中复制并运行以下代码进行测试,确保根据需要更改文件路径。

Get-FileHash -Path C:\downloads\VSCodeUserSetup-x64-1.52.1.exe -Algorithm sha256

正如您在下面的屏幕截图中看到的,Get-FileHash 命令按照 -Algorithm sha256 参数指定的方式计算文件的 SHA-256 哈希值。

[玩转系统] 在 Windows 中创建校验和并验证文件完整性

如果您想使用不同的算法计算文件的校验和,您只需更改Algorithm参数值即可。您认为现在可以使用 Get-FileHash 创建文件的 SHA-512 校验和吗?我打赌你可以!

同时为多个文件生成哈希值

使用Get-FileHash,可以同时生成多个文件的校验和。下面的示例代码将文件路径列表存储在 $files 变量中。接下来,Get-FileHash 使用 $files 变量来计算每个文件的 SHA-256 校验和,如下面的屏幕截图所示。

$files = @(
    'C:\downloads\PowerShell-7.1.0-win-x64.msi',
    'C:\downloads\VSCodeUserSetup-x64-1.52.1.exe'
)
Get-FileHash -Path $files -Algorithm sha256

[玩转系统] 在 Windows 中创建校验和并验证文件完整性

如果您需要为充满文件的文件夹生成哈希值怎么办?使用 Get-ChildItem cmdlet 检索给定文件夹中的文件列表,而不是手动创建 $files 数组。

在下面的命令中,Get-ChildItem cmdlet 检索 c:\downloads 文件夹内的文件列表。然后,结果通过 PowerShell 管道传递到 Get-FileHash cmdlet,后者依次计算每个文件的 SHA-256 哈希值。

(Get-ChildItem C:\downloads).Fullname | Get-FileHash -Algorithm sha256

根据文件大小,生成校验和所需的时间可能会有所不同。在此示例中,该命令大约需要二十秒来计算 8GB ISO 文件的校验和。结果应该类似于下面的屏幕截图。

[玩转系统] 在 Windows 中创建校验和并验证文件完整性

使用第三方工具在 Windows 中创建文件校验和

如果由于某种原因,您发现 Windows 中生成文件校验和的内置工具不够,可以使用第三方工具。并非所有第三方工具都是免费的,但下面显示了一些免费且流行的实用程序。

7-拉链

您是否厌倦了使用命令行并正在寻找一个图形工具来在 Windows 中创建文件校验和? 7-zip是一种流行的免费文件压缩工具,能够生成文件的哈希值。

在计算机上安装 7-zip 会自动添加一个上下文菜单选项来生成文件的校验和。要获取文件的哈希值,请按照下列步骤操作:

  1. 右键单击该文件以生成校验和。
  2. 选择CRC SHA菜单选项列出可用的哈希算法。
  3. 最后,单击您要使用的哈希算法。

在下面的示例中,星号 (*) 选项使用所有可用算法显示文件的哈希值。怎么样,容易吗?

[玩转系统] 在 Windows 中创建校验和并验证文件完整性

接下来,学习如何使用 HashMyFiles 工具生成多个文件的校验和作为 7-Zip 的替代方案!

哈希我的文件

忘记命令行并右键单击。 HashMyFiles 可以使用拖放操作创建单个文件、多个文件或整个目录的校验和或哈希值。

启动 HashMyFiles 程序并将要生成哈希值的文件或文件夹拖到 HashMyFiles 主窗口中。如下所示,主窗口以表格格式显示文件和关联的哈希值,并在属性窗口中提供其他信息。

[玩转系统] 在 Windows 中创建校验和并验证文件完整性

此外,HashMyFiles 可以将哈希值或校验和值导出到 HTML 报告或制表符分隔文件中。当您想要保留文件校验和值的记录时,此导出功能非常有用。

下一步

在本文中,您了解了在 Windows 中创建文件校验和的多种方法。 Microsoft 具有内置的命令行工具,例如 certutil.exeGet-FileHash

还有一些免费且相对易于使用的第三方工具。无论您选择哪种工具来生成文件哈希值,每种哈希算法的概念和结果都是相同的。

你接下来要做什么?也许可以测试您的脚本编写技能,并使用您在本文中学到的任何工具创建关键文件的校验和清单。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯