如何将Powershell中文件的SHA256哈希与已知值进行比较?

问题描述

如果我下载的文件带有已知的SHA256哈希,如何使用PowerShell检查文件是否与预期的哈希匹配?

解决方法

Get-FileHash cmdlet计算文件和SHA256 is it's default hash algorithm的哈希值。

计算文件的哈希值:

Get-FileHash .\path\to\foo.zip

产生类似的东西:

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
SHA256          15DC0502666851226F1D9C0FE352CCAF0FFDEFF2350B6D2D08A90FCD1F610A10       C:\Users\me\path\to\foo.zip

要与已知值进行比较,请从Get-FileHash的输出中单独提取计算出的哈希值,然后将其与期望值进行比较(作为(带引号的)字符串文字)。方便地,此比较似乎不区分大小写

(Get-FileHash .\path\to\foo.zip).Hash -eq "15dc0502666851226f1d9c0fe352ccaf0ffdeff2350b6d2d08a90fcd1f610a10"
True

或者如果文件中包含预期的哈希值,请说expected-hash.sha256

(Get-FileHash '.\path\to\foo.zip').Hash -eq (Get-Content .\expected-hash.sha256)
True

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...