如何在PowerShell中获取MD5校验和

我想计算一些内容的MD5校验和。 我如何在PowerShell中执行此操作?


如果内容是一个字符串:

$someString = "Hello World!"
$md5 = new-object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
$utf8 = new-object -TypeName System.Text.UTF8Encoding
$hash = [System.BitConverter]::ToString($md5.ComputeHash($utf8.GetBytes($someString)))

如果内容是文件:

$someFilePath = "C:foo.txt"
$md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
$hash = [System.BitConverter]::ToString($md5.ComputeHash([System.IO.File]::ReadAllBytes($someFilePath)))

从PowerShell版本4开始,使用Get-FileHash cmdlet可轻松完成开箱即用的文件操作:

Get-FileHash <filepath> -Algorithm MD5

这当然是可取的,因为它避免了第一个解决方案提供的问题(使用流,关闭它并支持大文件)所提供的问题。


如果您使用的是PowerShell社区扩展,则有一个Get-Hash命令行程序可以轻松完成此操作:

C:PS> "hello world" | Get-Hash -Algorithm MD5


Algorithm: MD5


Path       :
HashString : E42B054623B3799CB71F0883900F2764

以下是两行,只需在第2行中更改“hello”:

PS C:> [Reflection.Assembly]::LoadWithPartialName("System.Web")
PS C:> [System.Web.Security.FormsAuthentication]::HashPasswordForStoringInConfigFile("hello", "MD5")
链接地址: http://www.djcxy.com/p/29105.html

上一篇: How to get an MD5 checksum in PowerShell

下一篇: How to recursively delete an entire directory with PowerShell 2.0?