使用Windows PowerShell获取文件哈希
- 类别: 视窗
获取文件哈希值可能非常有用。例如,这可用于确保备份文件没有损坏或被修改(通过在处理之前和之后生成哈希),或确保没有人篡改重要文件。
您也可以在下载站点上看到它,但是在那里的使用受到限制。原因很简单:如果攻击者设法更改了下载文件,则该网站也有可能遭到破坏。从理论上讲,这至少可以意味着该网站上显示的文件哈希也已修改,以适应新的恶意下载版本。
过去,我们已经审查了许多与哈希相关的程序: Windows Shell扩展HashTab ,结束 Nirsoft的HashMyFiles 至 文件检查MD5 和 MD5检查实用程序 。
使用Windows PowerShell获取文件哈希
如果您需要在Windows计算机上快速生成文件的哈希,那么您也可以 使用PowerShell 为了那个原因。
它可能不像其中的某些哈希程序那样舒适,但是它是本机实现,不需要第三方软件即可工作。例如,在受限环境中或没有可用的Internet连接下载这些程序时很有用。
哈希生成已集成到PowerShell 4.0中。它包含在Windows 8.1和Windows Server 2012 R2中,也可用于Windows 7 Service Pack 1,Windows Server 2012和Windows Server 2008 R2 Service Pack 1。
- 点击Windows键,键入PowerShell,然后按Enter键以启动它。
主要命令是 get-filehash FILEPATH ,例如 get-filehash c: test.txt 。
默认情况下,Get-FileHash使用Sha256算法。您可以使用-Algorithm参数来指定其他算法。
支持的包括:SHA1,SHA256,SHA384,SHA512,MACTripleDES,MD5,RIPEMD160
请注意,不再认为MD5和SHA1是安全的,但仍受支持。
因此,要生成Sha512哈希,可以使用以下命令 get-filehash-算法Sha512 c: test.txt。
您也可以使用-LiteralPath或-InputStream代替默认路径选项。
- LiteralPath: get-filehash -LiteralPath -Algorithm SHA512 c: test.txt。
- 输入流 get-filehash -InputStream-算法SHA512流。
path和literalpath之间的核心区别在于,literalpath不支持通配符,并且按键入时的原样使用。
证书实用程序
CertUtil是另一个本机Windows程序,可用于计算文件的哈希值。您可以从命令提示符或使用PowerShell运行程序。
基本命令是 certutil -hashfile路径 ,例如 certutil -hashfile c: example.txt 。
您也可以指定哈希算法。支持MD2,MD4,MD5,SHA1,SHA256,SHA384,SHA512。默认算法为MD5。
要使用其他哈希算法,请在命令后指定它,例如 certutil -hashfile c: example.txt SHA512 。
结束语
您可以在脚本中使用命令来一次执行多个文件的哈希计算。两种本机工具get-filehash和certutil对于在Windows上快速计算哈希值以及脚本使用非常方便。 (通过 Genbeta (西班牙语))