Windows 7上是否有内置的校验和/哈希实用程序?
Windows 7上是否有内置的校验和/哈希实用程序?
Answers:
如另一个答案中所述,有一个内置的实用程序。
但是,您可能希望使用名为HashTab的免费应用程序,该应用程序通过在文件属性对话框中注册一个...选项卡,可以与Windows Explorer 完美集成。很甜
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 " ",""
certutil
功能在Windows PE中不可用,因此,如果您尝试在PE中的预部署任务脚本中计算校验和,则必须使用Microsoft FCIV之类的外部工具。
CertUtil -hashfile C:\TEMP\MyDataFile.img MD5
不会产生与md5sum /tmp/MyDataFile.img
Linux下相同的哈希值(我保证这是一个带有安装文件的文件)
Microsoft提供了FCIV实用程序,即Microsoft File Checksum Integrity Verifier (下载链接)。
Microsoft File Checksum Integrity Verifier工具是不受支持的命令行实用工具,可为文件计算MD5或SHA1加密哈希。
它没有在系统要求中显示Windows 7,但是我只是在Windows 8中使用了它,并且可以正常工作。
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"
powershell Get-FileHash -Algorithm md5 <file_to_check> | Format-List
Get-FileHash "C:\foo.exe" -Algorithm MD5,SHA1,SHA256 | Format-List
连续列出多个哈希值?控制台中没有存储这样的指令吗?我试图用正确的语法重新编写几次,但是它返回了一个错误,并且如果没有嵌入脚本,它似乎无法工作。
这是我之前使用过的,可以很好地与资源管理器的“属性”对话框集成:Summer Properties。它是开源的,并且还提供x64版本。
我也喜欢Safer Networking的FileAlyzer,它还提供了其他功能。但是,仅对于校验和而言,Summer Properties是轻量级的,可以完成工作。
Nirsoft的HashMyFiles是一个小型实用程序,可让您计算系统中一个或多个文件的MD5和SHA1哈希。您可以轻松地将MD5 / SHA1哈希列表复制到剪贴板,或将其保存到text / html / xml文件中。
HashMyFiles也可以从Windows资源管理器的上下文菜单中启动,并显示所选文件或文件夹的MD5 / SHA1哈希。
HashMyFiles是免费软件且可移植。
…that integrates into Windows [Explorer]
我找到了以下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(我假设您已经安装了)
我之所以在这里添加它仅仅是因为我没有看到任何可以正常工作的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:\>
Microsoft文件校验和完整性验证程序。它可以计算 MD5和 SHA-1哈希值。
下载并解压缩文件,然后打开命令提示符,转到解压缩的路径,然后键入以下命令:
fciv -md5 filepath\filename.extension
例如:
fciv -md5 d:\programs\setup.exe
'fciv' is not recognized as an internal or external command, operable program or batch file.
Microsoft Windows [10.0.14393版]
不幸的是,不是我所知道的,而是Microsoft的Sysinternals套件包括一个名为sigcheck的不错的工具。
一个基于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
可以工作
这只是一个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
Cygwin包含md5sum.exe
应执行所需操作的实用程序。
QuickHash支持SHA-256和SHA-512。我需要SHA-256支持,以验证列入白名单的JavaScript库的校验和是否包含在Firefox插件中。
我使用校验和命令行实用程序。
md5
,sha1
,sha256
和sha512
。用法:
校验和[-t = sha1 | sha256 | sha512 | md5] [-c =签名] [-f =]文件路径
-?
,--help
,-h
-f
,--file=VALUE
-t
,--type
,--hashtype=VALUE
md5
。 -c
,--check=VALUE
# 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..
这样的东西:winmd5sum。
这也很不错:sendtoMD5-右键单击,发送到...,它将为您提供结果。
HashTab 3.0是一个免费的Shell扩展,可以计算许多校验和,包括MD5。它已集成为“文件属性”中的新选项卡。
正确的答案当然是,是的CertUtil(请参阅tedr2的答案)。
但是,我将添加Penteract的免费文件校验和验证器 ,我认为它是最用户友好的程序之一。(免责声明:我隶属于Penteract。)
它的一些优点:
要验证该程序的完整性(针对中间人攻击),请通过安全连接下载该程序。
另外:免费,离线(因此您不必上传文件),用户友好(将文件拖入并获取结果),从开始菜单启动(当您需要时无需查找下载的可执行文件)从现在开始一年使用),并支持MD5,SHA1,SHA256等。
对于适用于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
可以在任何地方运行。