如何创建包含SHA256哈希的最小文件?

时间:2015-02-17 21:21:12

标签: powershell hash powershell-v2.0 line-breaks sha256

我正在使用Powershell 2.0。

我有一个包含单个SHA256哈希值的变量(对应于文件的哈希值,此处为$filename):

$filename = "C:\aaa\aaa.exe"
$sha256Value = ... # The hash for $filename

我想将该值保存到文件中。这是我尝试的第一个解决方案:

$sha256Value | Out-File -FilePath ($filename + ".sha256")

文件的大小(不在磁盘上)是134个字节。使用此命令,它会在.sha256文件中生成换行符。

我试过的第二个解决方案:

[IO.File]::AppendAllText(($filename + ".sha256"),$sha256Value,[System.Text.Encoding]::UTF8)

使用第二个选项,文件大小(不在磁盘上)是67个字节,它也不包含换行符。

另外,只需删除UTF8编码,我就可以将文件大小降低到64字节。

是否还有其他可以减小文件大小的解决方案?此外,是否可以为第一个解决方案(即使用Out-File)获得相同的文件大小?

1 个答案:

答案 0 :(得分:2)

您可以直接编写字节:

[text.encoding]::utf8.getbytes($sha256Value) | set-content ($filename + ".sha256") -encoding byte