我一直在比较多个系统之间的哈希值,并惊讶地发现PowerShells哈希值与其他终端的哈希值不同。
Linux终端(CygWin、等)而Windows提示符都显示了与PowerShell显示不同哈希值相同的散列。

使用SHA256进行了测试,但在使用其他算法(如md5 )时发现了同样的问题。
编码更新:
尝试更改PShell编码,但它对返回的哈希值没有任何影响。
[Console]::OutputEncoding.BodyName
iso-8859-1
[Console]::OutputEncoding = [Text.UTF8Encoding]::UTF8
utf-8GitHub PowerShell
发布于 2018-01-21 21:03:48
Linux终端和PowerShell使用不同的编码。因此,echo -n "string"产生的实际字节是不同的。我在Linux终端和Mint 10 PowerShell上试用了它。这是我得到的:
Linux铸币厂:
73 74 72 69 6E 67Windows 10:
FF FE 73 00 74 00 72 00 69 00 6E 00 67 00 0D 00 0A 00看起来Linux终端使用UTF-8,而Windows PowerShell使用UTF-16和BOM。同样,在PowerShell中,您不能使用'-n‘参数作为回波。因此,echo将换行符\r\n (0D 00 0A 00)放在"string“的末尾。
https://stackoverflow.com/questions/48371447
复制相似问题