整个文件的MD5校验和与内容的校验和不同

Mar*_*tin 2 md5

我创建了一个包含一个单词的文件a.txt - 'dog'.

这是一个MD5校验和:

$md5sum a.txt

c52605f607459b2b80e0395a8976234d  a.txt
Run Code Online (Sandbox Code Playgroud)

这是单词dog的MD5校验和:

$perl -e "use Digest::MD5 qw(md5_base64 md5_hex); print(md5_hex('dog'));"

06d80eb0c50b49a509b49f2424e8c805
Run Code Online (Sandbox Code Playgroud)

为什么校验和不同?

谢谢,

马丁

小智 5

大概你在文件的末尾有一个换行符.尝试使用echo -n:

$ perl -e "use Digest::MD5 qw(md5_base64 md5_hex); print(md5_hex('dog'));"
06d80eb0c50b49a509b49f2424e8c805
$ echo 'dog' >a.txt
$ md5sum a.txt
362842c5bb3847ec3fbdecb7a84a8692  a.txt
$ echo -n 'dog' >a.txt
$ md5sum a.txt
06d80eb0c50b49a509b49f2424e8c805  a.txt
Run Code Online (Sandbox Code Playgroud)

这是一个很常见的问题: