如何将 powershell 中文件的 SHA256 哈希值与已知值进行比较?附加问题

Posted

技术标签:

【中文标题】如何将 powershell 中文件的 SHA256 哈希值与已知值进行比较?附加问题【英文标题】:How can I compare a files's SHA256 hash in powershell to a known value? Additional question 【发布时间】:2022-01-10 13:17:04 【问题描述】:

@Mac 我刚刚找到了 powershell 的以下链接,它非常有帮助。如何指定里面有普通文本,比如一个 .txt 文件,而不仅仅是散列。例如,我正在使用的 .txt 中有描述性文本,第一行是文件名,第二行是 MD5 校验和:xxxxxxxxxxxx,第三行是 SHA-1 校验和:xxxxxxxxx,最后一行是 SHA-256 校验和: xxxxxxxxx。有什么想法吗?

How can I compare a files's SHA256 hash in powershell to a known value?

【问题讨论】:

这是我的问题所指的 powershell 代码。 (Get-FileHash '.\path\to\foo.zip').Hash -eq (Get-Content .\expected-hash.sha256) 我没有关注,哈希是硬编码在文件内容中的吗?如果是这样,请提供文件内容的表示。 【参考方案1】:

使用Select-Object -Last 1 只抓取Get-Content 输出的最后一行:

# Grab last line from file
$sha256Line = Get-Content .\file-with-hashes.txt |Select -Last 1

# Remove everything but the trailing hash
$expectedHash = $sha256Line -replace '^.*([A-F0-9]64)\s*$','$1'

现在您可以比较Get-FileHash$expectedHashHash 输出

【讨论】:

...或Get-Content file.txt -Tail 1 :) 优秀!!!非常感谢你们的帮助!我现在有一个很棒的自动化!

以上是关于如何将 powershell 中文件的 SHA256 哈希值与已知值进行比较?附加问题的主要内容,如果未能解决你的问题,请参考以下文章

PowerShell校验哈希

Win10如何使用PowerShell校验文件

用PowerShell的命令行检查文件的校验MD5 SHA1 SHA256

Windows下计算文件MD5和SHA256等摘要的方法(利用PowerShell)

win10 powershell 验证下载的包的MD5/sha1的签名值

如何在配置文件中定义的 PowerShell 脚本中设置环境变量?