[我注意到,在使用vim将它们复制粘贴到文件中后尝试生成一些哈希值时,哈希值不是应该的。打开和写入文件时相同。与nano的行为相同,因此肯定有些我在误解。
$ echo -n "foo" | openssl dgst -sha256
2c26...e7ae
$ echo -n "foo" > hash.txt
$ openssl dgst -sha256 hash.txt
SHA256(hash.txt)= 2c26...e7ae
但是当我使用nano或vim打开hash.txt并退出而没有插入任何内容时,我随后得到以下哈希:b5bb...944c
[我还注意到,在不打开文件并写出来的情况下,使用cat
或head
时看不到输出。编码更改了吗?
大多数文本编辑器,包括Vim,在退出时最后都会用换行符保存文件。这是因为根据POSIX,文本文件为空或以换行符结尾,所以大多数用户期望并希望这种行为。