Windows 7上是否有内置的校验和实用程序?


676

Windows 7上是否有内置的校验和/哈希实用程序?


不是我的领域,但是脚本语言构建的Powershell可能可以做到。
Phoshi 2011年

18
这是那些愚蠢的“我不允许安装任何第三方软件”的要求之一吗?如果是这样,请尝试搜索“ PowerShell SHA1哈希”,您将获得一些脚本/ cmdlet,这些脚本/ cmdlet将使用MS的Crypto API在内置PowerShell上运行。
afrazier 2011年

8
有GetFile-Hash。你需要PS 4.0或社区扩展stackoverflow.com/questions/10521061/...
rofrol

2
Avast Antivirus对我来说阻止了从上述站点的下载,因此可能值得谨慎使用。
Jules 2014年

10
请注意,(对我而言)最佳答案是第二答案,该第二答案的投票人数比问询者选择的答案要多得多。对于读者:在下面查找“ certutil.exe”选项。
macetw

Answers:


195

另一个答案中所述,有一个内置的实用程序。

但是,您可能希望使用名为HashTab的免费应用程序,该应用程序通过在文件属性对话框中注册一个...选项卡,可以与Windows Explorer 完美集成。很甜

HashTab屏幕截图


90
与HashTab相比,我更喜欢HashCheck,主要是因为它可以处理多个混合文件/文件夹选择,并且可以创建/验证SFV / MD5 / SHA1文件。 在Ars论坛上写的文章更加详细。
afrazier 2011年

45
请注意,HashTab仅可免费私人使用!哈希检查是开源的,完全自由的(BSD许可证)
计器

36
是的,有一个cmd:CertUtil -hashfile _main.exe MD5
Scott混合理论

14
“有一个内置的实用程序可以完全满足您的需求。但是,您可以使用其他工具来完成您不需要的功能。” 为什么这是公认的答案?
abaumg

8
>“谢谢。不幸的是,内置对我来说是一项基本要求。” 那么,为什么要选择问题不要求的非内置软件作为答案呢?
KalEl

1186

CertUtil是预安装的Windows实用程序,可用于生成哈希校验和:

certUtil -hashfile pathToFileToCheck [HashAlgorithm]

哈希算法选项:MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512

因此,例如,以下代码为文件生成了MD5校验和 C:\TEMP\MyDataFile.img

  CertUtil -hashfile C:\TEMP\MyDataFile.img MD5

要获得类似于* Nix系统的输出,可以添加一些PowerShell魔术:

$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""

103
这个问题是内置的,除了powershell脚本外,这是Windows 7中唯一内置的问题。在某些环境中,您不能只安装软件。我的单一赞誉似乎不足以解决这个问题。
jbo5112 2015年

18
MD5.bat:@certutil -hashfile%1 MD5 |查找/ v“文件哈希” |查找/ v“ CertUtil”
pbarney

6
请注意,该certutil功能在Windows PE中不可用,因此,如果您尝试在PE中的预部署任务脚本中计算校验和,则必须使用Microsoft FCIV之类的外部工具。
Wayfarer

3
真是不可思议,但CertUtil -hashfile C:\TEMP\MyDataFile.img MD5不会产生与md5sum /tmp/MyDataFile.imgLinux下相同的哈希值(我保证这是一个带有安装文件的文件)
lalebarde

13
@lalebarde MD5只有一种标准。如果您在同一文件上获得不同的结果,那是因为某些事情对该文件进行了某些更改,并导致哈希值有所不同。这是MD5和其他哈希标准的最重要功能之一。
保罗

178

我正在使用HashCheck最新版本),该自身将自身集成为文件的属性页,并包含一个上下文菜单以与哈希检查文件(SFV)进行比较。

它是免费的,并且源可用。

屏幕截图


3
搞笑的应用程序。绝对是最好的。它可以通过双击创建的文件来检查哈希值。它还记得哪些文件被哈希处理。
帕维尔·拉兹维洛夫斯基

6
AVG标记核心Windows实用程序已更改-这是恶意软件经常执行的操作。
dunxd 2012年

11
免费,开源,与属性页和资源管理器上下文菜单集成,具有.MD5检查器并支持SHA-1。更不用说它只有85kb,而且运行速度非常快。这个应用程序真是太棒了,谢谢!
Şafak古尔

4
您可以通过Chocolatey安装它!
Michael Caron

4
@Sossenbinder您一定在看错地方了。自14年12月以来一直支持SHA-256。该工具至少要等到16年9月才更新,因此尽管它可能最近没有启用,但可能没有太多添加。github.com/gurnec/HashCheck/releases
B层

84

Microsoft提供了FCIV实用程序,即Microsoft File Checksum Integrity Verifier下载链接)。

Microsoft File Checksum Integrity Verifier工具是不受支持的命令行实用工具,可为文件计算MD5或SHA1加密哈希。

它没有在系统要求中显示Windows 7,但是我只是在Windows 8中使用了它,并且可以正常工作。


为什么我们链接到不受支持的命令行实用程序。我什至认为这还不能整合到作者肯定想要的外壳中。
Ramhound 2012年

31
该实用程序对我很有用。我从msdn下载了iso映像,并需要对其进行校验和。我不需要任何第三方工具。我不需要外壳程序集成,而作者也不需要它。它来自Microsoft的可信任来源,并且在不受支持的情况下仍然可以使用。我在此处发布了一个链接,因为像我这样的其他人可能会发现它有用。
创建者2012年

29
我在@creator上。它可能不受支持,但作者至少是Microsoft。校验和程序对于维护安全性可能非常重要。我不想从一些随机的第三方那里得到我的帮助。
ellisbben 2012年

3
尽管它是适度使用的OKish实用程序,但它很不稳定。我在xdelta脚本中使用它来确定大小相同的文件是否不同,但很遗憾地说每几百个文件大约会发生1次崩溃。这是不可靠的,因此建议:使用其他东西。
JasonXA

PsFCIV是PowerShell重写,支持原始XML数据库功能以及SHA-256,SHA-384和SHA-512哈希。
User5910 2009年

76

PowerShell版本4及更高版本包含Get-FileHash cmdlet。

powershell get-filehash -algorithm md5 <file_to_check>

使用doskey创建易于记忆的持久别名。

doskey sha1sum=powershell get-filehash -algorithm sha1 "$1"
doskey md5sum=powershell get-filehash -algorithm md5 "$1"

1
通过添加格式列表以显示完整的输出(如果哈希结果字符串太长) powershell Get-FileHash -Algorithm md5 <file_to_check> | Format-List
celeron533

终于到了PowerShell!
富兰克林于

辉煌的问题和答案。感谢所有这些。我会推荐其他软件,但这已经很完整了。非常感谢您对此线程的贡献。打扰一下...请问为什么Win 8.1和10上的PowerShell无法原生识别Get-FileHash "C:\foo.exe" -Algorithm MD5,SHA1,SHA256 | Format-List连续列出多个哈希值?控制台中没有存储这样的指令吗?我试图用正确的语法重新编写几次,但是它返回了一个错误,并且如果没有嵌入脚本,它似乎无法工作。
K0media

38

新版本的7-Zip也使您可以通过右键单击来选择校验和(不包括MD5)。它具有SHA-1SHA-256,CRC-32,CRC-64等。

在此处输入图片说明


对于MD5,您可以下载HashTab并右键单击,然后单击属性进行检查。

在此处输入图片说明


您正在谈论哪个版本的7-zip?
klaar '17

不幸的是,7-zip校验和工具不允许您复制校验和!
德里克·马哈尔

我认为选择哈希文本和Ctrl + C可以正常工作。
abe312 '12

在我的设置中,如果转到文件的属性,则可以通过在文件哈希选项卡下右键单击->复制来复制哈希。
abe312

23

这是我之前使用过的,可以很好地与资源管理器的“属性”对话框集成:Summer Properties。它是开源的,并且还提供x64版本

SummerProperties屏幕截图

我也喜欢Safer Networking的FileAlyzer它还提供了其他功能。但是,仅对于校验和而言,Summer Properties是轻量级的,可以完成工作。


1
唯一的问题是它不支持文件夹或文件组。它也不在dvlp中
Pavel Radzivilovsky 2010年

1
另一个问题是您无法将哈希值粘贴到其中,看看它是否匹配
Jonathan

我知道这确实很老,但是在问这个问题一年多以前,您是如何回答的?
巴鲁克

@Baruch如果您查看问题的编辑历史,您会发现,在2015年5月,另一个类似的问题(但更老)将其答案合并到该问题中。我不知道为什么新问题是选择生存的问题,但这就是为什么它看起来很奇怪的原因。这是原来的老问题
克里斯·瑞

15

Nirsoft的HashMyFiles是一个小型实用程序,可让您计算系统中一个或多个文件的MD5和SHA1哈希。您可以轻松地将MD5 / SHA1哈希列表复制到剪贴板,或将其保存到text / html / xml文件中。

HashMyFiles也可以从Windows资源管理器的上下文菜单中启动,并显示所选文件或文件夹的MD5 / SHA1哈希。

替代文字

HashMyFiles是免费软件且可移植。


+1,似乎就像一个新的东西-我上次检查(在移至md5sum命令行版本之前)是FastSum -但它是一种试用软件,并且有很多缺点。HashMyFiles很好,因为它允许拖放多个文件并导出到CSV(两个重要功能)。不要以为几年前我找到FastSum时就已经看过它了。
尼克

没错,HashMyFiles是NirSoft产品组合中的最新成员,它于2007

…that integrates into Windows [Explorer]
Synetech 2013年

而且体积很小!
Pedi T.

13

我找到了以下PowerShell脚本:

param([switch]$csv, [switch]$recurse)

[Reflection.Assembly]::LoadWithPartialName("System.Security") | out-null
$sha1 = new-Object System.Security.Cryptography.SHA1Managed
$pathLength = (get-location).Path.Length + 1

$args | %{
    if ($recurse) {
        $files = get-childitem -recurse -include $_
    }
    else {
        $files = get-childitem -include $_
    }

    if ($files.Count -gt 0) {
        $files | %{
            $filename = $_.FullName
            $filenameDisplay = $filename.Substring($pathLength)

            if ($csv) {
                write-host -NoNewLine ($filenameDisplay + ",")
            } else {
                write-host $filenameDisplay
            }

            $file = [System.IO.File]::Open($filename, "open", "read")
            $sha1.ComputeHash($file) | %{
                write-host -NoNewLine $_.ToString("x2")
            }
            $file.Dispose()

            write-host
            if ($csv -eq $false) {
                write-host
            }
        }
    }
}

资料来源:在PowerShell中计算SHA1

它利用.NET(我假设您已经安装了)


7
Win 7随附.NET 3.5和PowerShell v2,PowerShell一直依赖于.NET,因此,如果您拥有PS,那么您就拥有.NET。:-)
afrazier 2011年

9

我之所以在这里添加它仅仅是因为我没有看到任何可以正常工作的powershell示例,可以复制粘贴了:

C:\> powershell "Get-FileHash %systemroot%\system32\csrss.exe"

Algorithm       Hash
---------       ----
SHA256          CB41E9D0E8107AA9337DBD1C56F22461131AD0952A2472B4477E2649D16E...

C:\> powershell -c "(Get-FileHash -a MD5 '%systemroot%\system32\csrss.exe').Hash"

B2D3F07F5E8A13AF988A8B3C0A800880

C:\> CertUtil -hashfile "%systemroot%\system32\csrss.exe" MD5 | findstr -v file
b2 d3 f0 7f 5e 8a 13 af 98 8a 8b 3c 0a 80 08 80

C:\>

7

Microsoft文件校验和完整性验证程序。它可以计算 MD5 SHA-1哈希值。

下载并解压缩文件,然后打开命令提示符,转到解压缩的路径,然后键入以下命令:

fciv -md5 filepath\filename.extension

例如:

fciv -md5 d:\programs\setup.exe

此答案和@creator的答案应结合使用。他们指的是同一工具。
leif81 2014年

问题标题:Windows 7上是否有内置的校验和/哈希实用程序?'fciv' is not recognized as an internal or external command, operable program or batch file.Microsoft Windows [10.0.14393版]
Amit Naidu


6

一个基于pbarney对答案的评论最多的批处理文件:将以下文件的MD5哈希复制到拖到剪贴板上的批处理文件中:

@ECHO OFF
FOR /f "tokens=*" %%i IN ('@certutil -hashfile %1 MD5 ^| find /v "hash of file" ^| find /v "CertUtil"') DO SET r=%%i
SET r=%r: =%
ECHO %r% | clip

要使其成为上下文菜单项,请执行以下操作:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Get MD5]
@="Copy MD5 to Clipboard"

[HKEY_CLASSES_ROOT\*\shell\Get MD5\command]
@="\"C:\\<PATH TO BAT FILE>\\getMD5.bat\" \"%1\""

或者,如果您不介意额外的输出,那么一个班轮批处理文件也certutil -hashfile %1 md5可以工作
jrh

3

MD5上下文菜单正是这样做的。它将MD5选项添加到文件的上下文菜单中:

在此处输入图片说明

替代文字

MD5上下文菜单是Windows的免费软件外壳扩展,可显示所选文件的MD5哈希和。

它说它与Windows 95、98,ME,NT,2000和XP兼容,尽管它在Windows 7上对我来说也很好用。它的下载量很小(238 KB),包括您需要的一切。


3
“由于我们的工具的最新版本存在严重错误,无法处理大小大于2 ^ 31字节(〜2.1GB)的大文件,因此我们目前不再提供下载。”
塔哈·贾汉吉尔

3

这只是一个cmd shell脚本,它使用tedr2的答案,但去除了多余的输出行和空格:

:: hash.cmd : Get a hash of a file
:: p1: file to be hashed
:: p2: Hash algorithm in UPPERCASE
:: p3: Output file

@setlocal
@for /f "tokens=*" %%a in (
'@certutil -hashfile %1 %2 ^|find /v "hash of file" ^|find /v "CertUtil"'
) do @(
  @set str=%%a
)
@set str=%str: =%
@echo %str%
@endlocal

如果需要,可以将输出重定向到文件:

@echo %str% > %3

例如

sys> \dev\cmd\hash.cmd MyApp.dll SHA1
8ae6ac1e90ccee52cee5c8bf5c2445d6a92c0d4f

2

Cygwin包含md5sum.exe应执行所需操作的实用程序。


2
不幸的是,它基于命令行,因此无法与Windows Shell集成。
Cristian Ciupitu 2014年

克里斯蒂安·丘皮图(Cristian Ciupitu)只是因为您不知道该怎么做,并不意味着它就不能完成。我从Windows Shell桌面/文件夹背景和键入的应用程序上下文菜单中使用了许多CLI应用程序,它们工作正常。
JasonXA

2
Cygwin过于强大。有很多本机二进制文件可以完成这项工作,其中大多数在20万以下。
sCiphre

关于Cygwin,没有什么“大为矫over过正”的。设置实用程序使您可以检查并仅下载所需的内容,仅此而已。如果您选择的只是md5sum,那么您所获得的就是全部。
妮可·汉密尔顿


1

1.校验和

我使用校验和命令行实用程序。

  • 开源
  • 支持md5sha1sha256sha512

用法:

校验和[-t = sha1 | sha256 | sha512 | md5] [-c =签名] [-f =]文件路径


2.命令行参数

  • -?--help-h
    打印出的选项。
  • -f--file=VALUE
    文件名。
  • -t--type--hashtype=VALUE
    Hashtype默认为md5
  • -c--check=VALUE
    可选:check-您要检查的签名。不区分大小写。

3.用法示例

# Check md5 for "E:\Саша Неотразима\Sasha-Irresistible.exe" file
SashaChernykh@DESKTOP-0G54NVG E:аша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe"
342B45537C9F472B93A4A0C5997A6F52
# Check sha256
SashaChernykh@DESKTOP-0G54NVG E:аша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe" -t=sha256
F6286F50925C6CBF6CBDC7B9582BFF833D0808C04283DE98062404A359E2ECC4
# Correct 41474147414741474147 sha256 hash or not?
SashaChernykh@DESKTOP-0G54NVG E:аша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe" -t=sha256 -c 41474147414741474147
Error - hashes do not match. Actual value was 'F6286F50925C6CBF6CBDC7B9582BFF833D0808C04283DE98062404A359E2ECC4'
# One more attempt
SashaChernykh@DESKTOP-0G54NVG E:аша Неотразима
$ checksum -f "E:\Саша Неотразима\Sasha-Irresistible.exe" -t=sha256 -c F6286F50925C6CBF6CBDC7B9582BFF833D0808C04283DE98062404A359E2ECC4
Hashes match..


0

HashTab 3.0是一个免费的Shell扩展,可以计算许多校验和,包括MD5。它已集成为“文件属性”中的新选项卡。



0

正确的答案当然是,是的CertUtil(请参阅tedr2的答案)。

但是,我将添加Penteract的免费文件校验和验证器 ,我认为它是最用户友好的程序之一。(免责声明:我隶属于Penteract。)

它的一些优点:

  • 比较为您计算和预期的哈希值。
  • 简约-文件上下文菜单中没有项目,文件属性没有额外的选项卡。

要验证该程序的完整性(针对中间人攻击),请通过安全连接下载该程序。

Penteract文件校验和验证器

另外:免费,离线(因此您不必上传文件),用户友好(将文件拖入并获取结果),从开始菜单启动(当您需要时无需查找下载的可执行文件)从现在开始一年使用),并支持MD5,SHA1,SHA256等。


1
感谢您披露您的隶属关系。但是,请避免发布过多此类帖子,因为这样做可能被视为垃圾邮件。有关促销信息的更多信息,请访问superuser.com/help/promotion
bwDraco

1
这仅在Windows 10上有效,并且操作程序专门询问了W7。
Jool,2017年


0

您可以尝试msys2,它在这里

只需输入(算法)和。(algorithm)是您要使用的哈希算法,例如md5,sha1,sha256 ...

与Cygwin不同,此工具是便携式的,您只需下载.zip文件并解压缩到所需的任何位置即可。只需单击一下即可使用(msys2.exe)。

跳此工具将为您提供帮助。



-1

那里有大约100种第三方工具。我使用MD5Hash。对于带有sfv文件的下载,只需使用TeraCopy来验证哈希即可。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.