#1 楼
有一个内置实用程序,如该其他答案所述。但是,您可能希望使用名为HashTab的免费应用程序,该应用程序通过注册一个...可以与Windows Explorer完美集成。文件属性对话框中的“选项卡”。很漂亮。
评论
与HashTab相比,我更喜欢HashCheck,主要是因为它可以处理多个混合文件/文件夹选择,并且可以创建/验证SFV / MD5 / SHA1文件。我在Ars论坛上写的文章更加详细。
–非洲
2011-2-14在21:51
请注意,HashTab仅可免费私人使用! HashCheck是开源的且完全免费(BSD许可证)
–keiki
2012年10月22日14:08
是的,有一个cmd:CertUtil -hashfile _main.exe MD5
–斯科特混合理论
15年7月16日在8:53
“有一个内置实用程序可以完全满足您的需求。但是,您可以使用其他工具来完成您不需要的功能。”为什么这是公认的答案?
– abaumg
17年6月27日在12:36
>“谢谢。不幸的是,内置对我来说是一项基本要求。”那么,为什么要选择问题不要求的非内置软件作为答案呢?
– KalEl
17年9月10日在20:14
#2 楼
CertUtil是预安装的Windows实用程序,可用于生成哈希校验和:certUtil -hashfile pathToFileToCheck [HashAlgorithm]
HashAlgorithm选项:MD2 MD4 MD5 SHA5 SHA1 SHA256 SHA384 SHA512
因此,例如,以下代码为文件
C:\TEMP\MyDataFile.img
生成了MD5校验和: CertUtil -hashfile C:\TEMP\MyDataFile.img MD5
要获得类似于* Nix系统的输出,可以添加一些PowerShell魔法:
$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""
评论
这个问题是内置的,除了powershell脚本外,这是Windows 7中唯一内置的问题。在某些环境中,您不能只安装软件。我的单一赞誉似乎不足以解决这个问题。
– jbo5112
2015年9月23日14:30在
MD5.bat:@certutil -hashfile%1 MD5 |查找/ v“文件哈希” |查找/ v“ CertUtil”
– pbarney
2015年11月16日15:37
请注意,certutil在Windows PE中不可用,因此,如果您试图在PE中的预部署任务脚本中计算校验和,则必须使用Microsoft FCIV之类的外部工具。
–徒步旅行者
16年5月19日在8:14
@lalebarde MD5只有一种标准。如果您在同一文件上获得不同的结果,那是因为某些事情对该文件进行了某些更改,并导致哈希值有所不同。这是MD5和其他哈希标准的最重要功能之一。
– Paul
16-10-19在16:27
@mwfearnley,当未指定哈希算法参数时,SHA1似乎是默认值,并且,如果指定,则哈希算法参数区分大小写。因此,我首先尝试使用certutil -hashfile ... sha1并失败了。然后我离开了... sha1,它开始工作了。然后,我尝试使用... SHA1进行了尝试。 (然后我重复了对md5 / MD5的测试。)
– JMD
18年1月22日在18:44
#3 楼
我正在使用HashCheck(最新版本),该版本将其自身集成为文件的属性页,并包含一个上下文菜单以与哈希检查文件(SFV)进行比较。它是免费的,并且源可用。
评论
搞笑的应用程序。绝对是最好的。它可以通过双击创建的文件来检查哈希值。它还记得哪些文件被哈希处理。
–帕维尔·拉齐维洛夫斯基(Pavel Radzivilovsky)
2010-12-23 14:26
AVG标记核心Windows实用程序已更改-这是恶意软件经常执行的操作。
– Dunxd
2012年11月20日上午10:15
免费,开源,与属性页和资源管理器上下文菜单集成,具有.MD5检查器并支持SHA-1。更不用说它只有85kb,而且运行速度非常快。这个应用程序真是太棒了,谢谢!
–ŞafakGür
14年2月26日在9:59
您可以通过Chocolatey安装它!
– Michael Caron
16年7月7日在15:04
@Sossenbinder您一定在看错地方了。自14年12月以来一直支持SHA-256。该工具至少要等到16年9月才更新,因此尽管它可能最近没有启用,但可能没有太多添加。 github.com/gurnec/HashCheck/releases
– B层
17-12-27 17:10
#4 楼
PowerShell版本4及更高版本包含Get-FileHash cmdlet。powershell get-filehash -algorithm md5 <file_to_check>
使用doskey创建易于记忆的持久别名。
doskey sha1sum=powershell get-filehash -algorithm sha1 ""
doskey md5sum=powershell get-filehash -algorithm md5 ""
评论
通过添加Format-List以显示完整的输出(如果哈希结果字符串太长)powershell Get-FileHash -Algorithm md5
– celeron533
17年7月31日在14:25
终于到了PowerShell!
–于富兰
18年1月24日在17:16
辉煌的问题和答案。感谢所有这些。我会推荐其他软件,但这已经很完整了。非常感谢您对此线程的贡献。请问...请问为什么在Win 8.1和10上的PowerShell无法识别Get-FileHash“ C:\ foo.exe” -Algorithm MD5,SHA1,SHA256 |格式列表本地列出连续的几个哈希?控制台中没有存储这样的指令吗?我尝试使用正确的语法重新编写几次,但是它返回一个错误,并且如果没有嵌入脚本,它似乎无法工作。
– K0media
18-2-14在17:08
这是内置的,与包括接受答案在内的许多其他选项不同,因此需要更多注意。
– flickerfly
19年12月10日16:09
#5 楼
Microsoft提供了FCIV实用程序,即Microsoft File Checksum Integrity Verifier(下载链接)。
Microsoft File Checksum Integrity Verifier工具是一种不受支持的命令行实用程序,它可以计算文件的MD5或SHA1加密散列。
系统要求中没有显示Windows 7,但我只是在Windows 8中使用过它。
评论
为什么我们链接到不受支持的命令行实用程序。我什至认为这还不能整合到我确定作者想要的外壳中。
–猎犬
2012年9月5日下午12:36
该实用程序对我很有用。我从msdn下载了iso映像,并需要对其进行校验和。我不想要任何第三方工具。我不需要外壳程序集成,而作者也不需要它。它来自Microsoft的可信赖来源,并且在不受支持的情况下仍然可以使用。我在此处发布了一个链接,因为像我这样的其他人可能会发现它有用。
–创建者
2012年9月6日下午4:25
我在@creator上。它可能不受支持,但作者至少是Microsoft。校验和程序对于维护安全性可能非常重要。我宁愿不要从随机的第三方那里得到我的东西。
– ellisbben
2012年9月18日18:00
虽然是适度使用的OKish实用程序,但它很不稳定。我在xdelta脚本中使用它来确定大小相同的文件是否不同,但很遗憾地说每几百个文件大约会发生1次崩溃。这是不可靠的,因此建议:使用其他东西。
– JasonXA
17 Mar 5 '17 at 17:58
FCIV尚未安装在我想在其上使用的任何Windows系统上,但是certUtil始终存在。我希望当我忘记要使用的工具名称时,FCIV并不是热门搜索结果。我也希望此功能是内置在文件属性对话框和浏览器下载管理器中的。
– jla
19年4月5日在16:31
#6 楼
新版本的7-Zip还提供了校验和选项,只需右键单击即可(不包括MD5)。它具有SHA-1,SHA-256,CRC-32,CRC-64等。。
对于MD5,您可以下载HashTab并通过右键单击然后检查属性。
评论
您正在谈论哪个版本的7-zip?
– klaar
17年8月15日在13:06
不幸的是,7-zip校验和工具不允许您复制校验和!
–德里克·马哈(Derek Mahar)
17年5月5日在15:59
我认为选择哈希文本和Ctrl + C可以正常工作。
– abe312
17年12月6日在16:22
在我的设置中,如果转到文件的属性,则可以通过在文件哈希选项卡下右键单击->复制来复制哈希。
– abe312
17 Dec 23'5:46
#7 楼
这是我之前使用过的一个,可以与资源管理器的“属性”对话框很好地集成:Summer Properties。它是开源的,也提供x64版本。我也喜欢Safer Networking的FileAlyzer,它也提供了附加功能。但是,仅对于校验和而言,Summer Properties是轻量级的,可以完成工作。
评论
唯一的问题是它不支持文件夹或文件组。它也出了dvlp
–帕维尔·拉齐维洛夫斯基(Pavel Radzivilovsky)
2010-12-23 12:47
另一个问题是您不能将哈希粘贴到其中,看看它是否匹配
–乔纳森
2011-3-23在16:33
我知道这确实很老,但是在问这个问题一年多以前,您是如何回答的?
–巴鲁克
19年8月7日在11:46
@Baruch如果您查看问题的编辑历史,您会发现,在2015年5月,另一个类似的问题(但更老)将其答案合并到该问题中。我不确定为什么新的问题是选择生存的问题,但这就是为什么它看起来很奇怪的原因。这是原来的旧问题。
–克里斯·W·雷亚(Chris W. Rea)
19年8月7日在21:38
#8 楼
Nirsoft的HashMyFiles是一个小型实用程序,可让您计算系统中一个或多个文件的MD5和SHA1哈希。您可以轻松地将MD5 / SHA1哈希列表复制到剪贴板中,或将它们保存到text / html / xml文件中。HashMyFiles也可以从上下文菜单中启动。 Windows资源管理器的
并显示
所选文件或文件夹的MD5 / SHA1哈希。
HashMyFiles是免费的和便携式。
评论
+1,似乎就像一个新的东西-我上次检查(在移至md5sum命令行版本之前)是FastSum -但它是一种试用软件,并且有很多缺陷。 HashMyFiles很好,因为它允许拖放多个文件并导出到CSV(这两个重要功能)。不要以为几年前我发现FastSum时就已经看过它了。
– nik
09年12月30日在2:15
没错,HashMyFiles是NirSoft产品组合中的最新成员,它于2007年首次发布。
–Molly7244
09年12月30日在9:05
…集成到Windows中的[Explorer]
– Synetech
2013年12月19日下午5:10
而且体积很小!
– Peter T.
19年2月8日在22:34
#9 楼
我找到了以下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(假设您已经安装了.NET) >
评论
Win 7随附.NET 3.5和PowerShell v2,并且PowerShell始终依赖于.NET,因此,如果您拥有PS,那么您就拥有.NET。 :-)
–非洲
2011-2-14在21:47
#10 楼
我在这里添加它仅仅是因为我没有看到任何可以正常工作的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:\>
2019更新:
从Windows 8开始,
certutil
的输出似乎已更改,因此我用于隔离哈希的旧过滤器不再起作用。多余的空间也消失了-编写脚本时无需担心的一件事。这是新的可复制粘贴的演示:C:\>CertUtil -hashfile "%systemroot%\system32\csrss.exe" | findstr -v ash
0300c7833bfba831b67f9291097655cb162263fd
C:\>CertUtil -hashfile "%systemroot%\system32\csrss.exe" SHA256 | findstr -v :
a37d616f86ae31c189a05b695571732073b9df97bf5a5c7a8ba73977ead3e65b
C:\>ver
Microsoft Windows [Version 10.0.16299.1451]
C:\>
要使它更灵活地抵御
certutil
的另一项未来更改造成的损坏,我们应该寻找带有-十六进制字符以过滤掉:[^0-9a-zA-Z]
。那也应该使其对于其他语言环境和语言更加安全。C:\>CertUtil -hashfile "C:\windows\fonts\arial.ttf" | findstr -vrc:"[^0123-9aAb-Cd-EfF ]"
12c542ef8c99cf3895ad069d31843a5210857fdc
为什么真正的反十六进制正则表达式这么奇怪?请参阅此问题,以了解findstr
中的正则表达式范围无法正常工作。我包括一个额外的空格字符,以便与较早的certutil
版本向后兼容,但它是可选的。请注意,powershell
Get-FileHash
的默认值为SHA256,而certutil
的默认值仍为SHA1。因此,在需要的地方明确指定算法。您可以快速检查可用的选项,例如:C:\>powershell -c "Get-FileHash -?" | findstr gori
Get-FileHash [-Path] <string[]> [-Algorithm {SHA1 | SHA256 | SHA384 | SHA512 | MACTripleDES | MD5 | RIPEMD160}]
Get-FileHash -LiteralPath <string[]> [-Algorithm {SHA1 | SHA256 | SHA384 | SHA512 | MACTripleDES | MD5 |
Get-FileHash -InputStream <Stream> [-Algorithm {SHA1 | SHA256 | SHA384 | SHA512 | MACTripleDES | MD5 | RIPEMD160}]
C:\>certutil -hashfile -v /? | findstr gori
CertUtil [Options] -hashfile InFile [HashAlgorithm]
Hash algorithms: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512
#11 楼
Microsoft文件校验和完整性验证程序。它可以计算MD5和SHA-1哈希值。下载,提取文件,然后打开命令提示符,转到提取的路径,然后键入以下命令:
fciv -md5 filepath\filename.extension
例如:
fciv -md5 d:\programs\setup.exe
评论
此答案和@creator的答案应结合使用。他们指的是同一工具。
–leif81
2014年6月11日下午13:36
问题标题:Windows 7上是否有内置的校验和/哈希实用程序?无法将“ fciv”识别为内部或外部命令,可操作程序或批处理文件。 Microsoft Windows [版本10.0.14393]
–阿米特·奈杜(Amit Naidu)
18年7月9日在19:24
#12 楼
不幸的是,不是我所知道的,而是Microsoft的Sysinternals套件包含一个名为sigcheck的不错的工具。#13 楼
基于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
18年8月20日在14:21
#14 楼
QuickHash支持SHA-256和SHA-512。我需要SHA-256支持来验证列入白名单的JavaScript库的校验和,以将其包含在Firefox插件中。评论
更新的链接:sourceforge.net/projects/quickhash/?source=directory(附带说明:JetBrains当前也将SHA-256用于其校验和。)
–特洛伊·吉兹(Troy Gizzi)
15年3月30日在13:56
谢谢,这是最简单,最快的。
–签名
12月24日18:07
#15 楼
MD5上下文菜单正是这样做的。它在文件的上下文菜单中添加了MD5选项:MD5上下文菜单是Windows的免费外壳扩展程序,它显示
它说它与Windows 95、98,ME,NT,2000和XP兼容,尽管它在Windows 7上可以正常工作。下载(238 KB)并包含您需要的所有内容。
评论
“由于我们工具的最新版本中存在一个严重错误,该错误是针对大于2 ^ 31字节(〜2.1GB)的大文件,因此我们目前不再提供下载。”
–塔哈·贾汉吉尔(Taha Jahangir)
13-10-11在4:35
#16 楼
这只是一个使用tedr2的答案的cmd shell脚本,但是会删除多余的输出行和空格::: 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
#17 楼
Cygwin包含一个md5sum.exe
实用程序,可以执行您想要的操作。评论
不幸的是,它是基于命令行的,没有与Windows Shell集成。
–克里斯蒂安·丘皮图
2014年5月21日19:38
克里斯蒂安·丘皮图(Cristian Ciupitu)只是因为您不知道该怎么做,并不意味着它就不能完成。我从Windows Shell桌面/文件夹背景和键入的应用程序上下文菜单中使用了许多CLI应用程序,它们运行良好。
– JasonXA
17 Mar 5 '17 at 18:01
Cygwin过于强大。有很多本机二进制文件可以完成这项工作,其中大多数都在200k以下。
–sCiphre
17年7月28日在12:48
关于Cygwin,没有什么“大为矫over过正”的。设置实用程序使您可以检查并仅下载所需的内容,仅此而已。如果您选择的只是md5sum,那么您所获得的就是全部。
–妮可·汉密尔顿
17年7月29日在14:10
#18 楼
正确的答案当然是,是的,CertUtil(请参阅tedr2的答案)。但是我将添加Penteract的免费文件Checksum Verifier,我认为它是最用户友好的程序之一。 (免责声明:我隶属于Penteract。)
它的一些优点:
为您比较计算出的哈希值和预期哈希值。
-文件的上下文菜单中没有任何项目,
文件的属性中没有额外的选项卡。
要验证该程序的完整性(针对中间人攻击),它会下载安全连接。
Plus:免费,离线(因此您不必上传文件),用户友好(将文件拖入并获取结果),然后从“开始”菜单启动(一年后不需查找下载的可执行文件),并支持MD5,SHA1,SHA256等。
评论
感谢您披露您的隶属关系。但是,请避免发布过多此类帖子,因为这样做可能被视为垃圾邮件。有关促销信息的更多信息,请访问superuser.com/help/promotion。
–bwDraco
15年8月31日在23:56
这仅在Windows 10上有效,并且操作程序专门询问了W7。
–乔尔
17年9月2日在12:34
在Windows 10上对我来说工作正常。谢谢。
–签名
12月24日18:09
#19 楼
1. checksum我使用checksum命令行实用程序。
开源,
支持
md5
,sha1
,sha256
和sha512
。用法:
校验和[-t = sha1 | sha256 | sha512 | md5] [-c =签名] [-f =]文件路径
2。命令行参数
-?
,--help
,-h
打印出选项。
-f
,--file=VALUE
文件名。
-t
,--type
,--hashtype=VALUE
哈希类型默认为
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..
#20 楼
这样的东西:winmd5sum。这也很好:sendtoMD5-右键单击,发送到...,它会为您提供结果。
#21 楼
HashTab 3.0是一个免费的Shell扩展,可以计算许多校验和,包括MD5。它已集成为文件属性中的新选项卡。
#22 楼
您可以在Windows上使用MD5sums,下载量仅为28 KB(如果您只想计算MD5哈希,Cygwin可能会大材小用)。使用它的最简单方法是使用资源管理器进行拖动并将文件拖放到md5sums.exe上以获得其MD5哈希值。
#23 楼
这不是内置实用程序,但是它是一个很好的选择http://checksumcompare.sanktuaire.com
您可以按文件和/或摘要比较校验和如果两个文件夹不同或相同。
#24 楼
您可以在这里尝试msys2。只需键入(algorithm)sum。 (算法)是您要使用的哈希算法,例如md5,sha1,sha256 ...
与Cygwin不同,此工具是可移植的,您只需下载.zip文件并提取到所需的任何位置即可。只需单击一下即可使用它(msys2.exe)。
此工具将为您提供帮助。
#25 楼
好吧,我已经编写了一个程序来从文件中计算一些哈希值。希望对您有帮助。这是做什么用的?
它可以计算SHA-1哈希,SHA-384哈希,MD5哈希和SHA-256哈希。好吧,就是这样:)
#26 楼
那里有大约100种第三方工具。我使用MD5Hash。对于带有sfv文件的下载,只需使用TeraCopy来验证哈希。#27 楼
对于适用于Windows或几乎任何其他环境的解决方案,请使用Python。安装Python-https://www.python.org/downloads提供了Windows安装程序。 /
下载经过测试的
cksum
实现,例如http://pastebin.com/raw.php?i=cKATyGLb-将其内容保存为c:\cksum.py
或任何您认为方便的地方然后执行校验和:
python c:\cksum.py INPUTFILE
不如已编译的实用程序快,但与Unix
cksum
兼容并且可以在任何地方运行。
评论
不是我的领域,但是脚本语言构建的Powershell可能可以做到。这是那些愚蠢的“我不允许安装任何第三方软件”的要求之一吗?如果是这样,请尝试使用Google搜索“ PowerShell SHA1哈希”,您将获得一些脚本/ cmdlet,它们将使用MS的Crypto API在内置PowerShell上运行。
有GetFile-Hash。您需要PS 4.0或社区扩展stackoverflow.com/questions/10521061/…
Avast防病毒软件已阻止我从上述站点下载文件,因此可能值得谨慎对待。
请注意,(对我而言)最佳答案是第二答案,该第二答案的投票人数比问询者选择的答案要多得多。对于读者:在下面查找“ certutil.exe”选项。