在PowerShell V2.0中计算SHA1哈希算法

8

在PowerShell V2.0中是否可能计算SHA-1哈希值?

我在网上找到的唯一信息是针对PowerShell V4.0的。


1
在现代PowerShell中,您可以使用Get-FileHash -a SHA1 /file/path/file.exe命令 - 参见:Get-Help Get-FileHash以获取帮助和支持的算法列表。当前默认值似乎是SHA256,这是用于网站下载校验和的最常用算法。 - Andrew
2个回答

25

我记不清在 PowerShell V2 时代是否通常也安装了 .NET 3.5。我觉得应该是这样。

你可以尝试以下方法,看看是否有效:

$file = 'd:\scripts\sha1.ps1'

$sha1 = New-Object System.Security.Cryptography.SHA1CryptoServiceProvider
[System.BitConverter]::ToString( $sha1.ComputeHash([System.IO.File]::ReadAllBytes($file)))

$file的值替换为您拥有的文件的名称。


1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Tejas Kale
1
最好使用 File.OpenRead 而不是一次性将整个文件加载到内存中。HashAlgorithm.ComputeHash 可以处理 Stream 重载。 - jpmc26

1
是的,这是可能的,因为它是.NET 2.0的一部分。事实上,PowerShell社区扩展使用.NET哈希支持来实现Get-Hash命令。版本2.1.1可在PowerShell V2上安装和运行。

谢谢你的帮助!很有用,但不幸的是我无法以任何方式升级PowerShell。 - user3586898

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接