如何在Powershell中将字符串转换为流对象?

时间:2018-01-18 13:52:33

标签: powershell

我想让一个字符串可用作适合消费的流对象,例如Get-FileHash命令,带-InputStream参数。

我想要这个的原因是我需要生成MD5 / SHA256 / SHA512的哈希值以及来自" inline"字符串,而不是文件的内容。我根本不想暂时将信息存储在文件中。

我知道这可以使用半个.NET对象和方法来完成,Powershell非常支持它,但我很好奇是否有现有的PS命令在字符串对象上生成流,所以我可以做这样的事情(假设Convert是从字符串中获取流的原因):

Get-FileHash -InputStream (Convert "Quick brown fox jumps over the lazy dog.") -Algorithm SHA512

2 个答案:

答案 0 :(得分:6)

您可以使用一些.NET函数:

$stream = [IO.MemoryStream]::new([Text.Encoding]::UTF8.GetBytes("Quick brown fox jumps over the lazy dog."))
Get-FileHash -InputStream $stream -Algorithm SHA512

答案 1 :(得分:1)

Microsoft脚本库中有一个脚本可以完全执行您最终要做的操作 - 也就是说,它需要一个字符串并返回字符串的哈希值。请参阅Get-StringHash in the Technet Powershell Script Gallery