【问题标题】:How to create md5 of string with powershell without using stream [duplicate]如何在不使用流的情况下使用 powershell 创建字符串的 md5 [重复]
【发布时间】:2022-11-28 11:57:55
【问题描述】:

尝试使用与 linux 生成的结果匹配的 powershell 创建字符串的 md5 散列...问题当然是 powershell 似乎只散列文件...

大多数答案指向 memorystream/streamwriter 但问题是如果没有......如何做...发布这个是因为有一个答案但必须搜索 PowerShell 2.0 才能找到所以将发布带有链接和受限标题的解决方案

【问题讨论】:

    标签: string powershell powershell-2.0 md5


    【解决方案1】:

    post 解决了问题...只是发现在需要遗留 powershell 2.0 解决方案之后...在 powershell 上的简单搜索没有立即出现(或者我的 google-fu 可能缺少)...另外, diff vs. linux(如果我记得的话)是关于 UTF-8 不匹配......

    解决方案:

    $md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider
    $utf8 = New-Object -TypeName System.Text.UTF8Encoding
    $String = "Hello, world!"
    $Hash = ([System.BitConverter]::ToString($md5.ComputeHash($utf8.GetBytes($String)))).replace("-","").ToLower()
    

    【讨论】:

      【解决方案2】:

      正如您已经注意到的,没有直接的方法或函数可以基于字符串创建 MD5 散列(没有用于 PS 的额外工具或模块)。但是,您可以使用 MemoryStream 来执行此操作:

      $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
      

      我在 https://infosecscout.com/get-md5-hash-in-powershell/ 上找到了这个不错的示例,其中还包含有关此主题的更多信息。

      如果您想要使用 PowerShell 扩展的更简单方法,您可以在以下模块中使用 Get-Hash cmdlet:https://github.com/Pscx/Pscx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-26
        • 2018-11-14
        • 2013-11-04
        • 2023-03-20
        • 1970-01-01
        • 2011-10-20
        • 2018-12-03
        • 2020-09-20
        相关资源
        最近更新 更多