迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 PowerShell 中获取 MD5 校验和

作者:迹忆客 最近更新:2024/03/03 浏览次数:

MD5 是一种散列算法,尽管存在较弱的安全问题,但仍被广泛使用。我们可以使用它来加密字符串或获取文件的指纹。

Windows PowerShell 提供了一个 cmdlet 来为文件生成 MD5 哈希。该 cmdlet 还可以通过打开流并对其进行散列来获取字符串的 MD5 散列。

本文将了解哈希算法并在 PowerShell 中使用它。


在 PowerShell 中使用 MD5 哈希算法

即使出于安全考虑不推荐使用 MD5,它仍然是检查文件传输是否被篡改或成功的绝佳解决方案。

首先,获取传输前后文件的 MD5 指纹。

如果结果相同,则说明文件传输未被篡改。如果不是,它已损坏。

为此,我们将使用 Get-FileHash cmdlet。Get-FileHash cmdlet 显示文件的哈希值。

它默认使用 SHA256 算法,但我们可以添加一个额外的参数来使用 MD5。

Get-FileHash [-Path] <file> [[-Algorithm] <algo>] [Options]

我们也可以将它与流而不是文件路径一起使用。

Get-FileHash [-InputStream] <stream> [[-Algorithm] <algo>] [Options]

这是一个例子:

Get-FileHash C:\Windows\explorer.exe -Algorithm MD5

输出:

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
MD5             3F786F7D200D0530757B91C5C80BC049                                       C:\Windows\explorer.exe

-Path 参数不是强制性的,所以我们不需要使用它。相反,我们给出文件路径并添加算法参数以使用 MD5 而不是 SHA256。

在脚本中使用 PowerShell,我们可以使用结果创建一个变量,并使用诸如 $variable.Hash 之类的哈希属性获取哈希值,以确保它与原始文件的值相同。


PowerShell 中的哈希字符串

不幸的是,在 PowerShell 中没有直接的函数或本机命令可以从字符串生成散列。

但是,可以将 Get-FileHash 与流参数一起使用,因此它是一种计算字符串散列的解决方案。

让我们直接从下面的代码片段开始:

$stringAsStream = [System.IO.MemoryStream]::new()
$writer = [System.IO.StreamWriter]::new($stringAsStream)
$writer.write("MD5Online")
$writer.Flush()
$stringAsStream.Position = 0
Get-FileHash -InputStream $stringAsStream -Algorithm MD5

输出:

Algorithm       Hash                                                                   
---------       ----                                                                   
MD5             D49019C7A78CDAAC54250AC56D0EDA8A
  • 首先使用 $stringAsStream 创建一个新流。
  • 然后使用 $writer 在流上写入。
  • 最后,我们使用 Get-FileHash 对流内容进行哈希处理。

与本文第一节相比,唯一的变化是我们使用了 -InputStream 而不是 -Path

正如你在输出中看到的那样,我们得到了字符串的 MD5 哈希值。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 PowerShell 中显示消息框

发布时间:2024/03/03 浏览次数:103 分类:编程语言

本文将讨论名为 Message Boxes 的 PowerShell GUI 的重要功能,我们将学习如何使用 PowerShell 编写和输出它们。

在 PowerShell 中输出信息性消息

发布时间:2024/03/03 浏览次数:74 分类:编程语言

本文将区分多个写入命令,例如写入信息、警告和错误消息,并提供我们可以在 PowerShell 中何时何地使用它们的情况。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便