我想让一个字符串可用作适合消费的流对象,例如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
答案 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。