md5sum返回不同的值与"相同"串

时间:2015-05-17 01:24:59

标签: hash terminal

md5sum函数在同一个字符串中返回不同的值 在这种情况下

>echo -n Bob | md5sum 
 2fc1c0beb992cd7096975cfebf9d5c3b

但在另一个案例中。

>md5sum <<< Bob 
a2eae7400008e77790c3272f754a14db

这里发生了什么?一些建议?

2 个答案:

答案 0 :(得分:1)

实际上,您的示例中的输出相同。然而, 从第一个示例中删除选项-n

echo Bob | md5sum

答案 1 :(得分:1)

here字符串包含一个隐式换行符(十六进制为0x0a)。比较

$ echo -n Bob | hexdump
0000000 42 6f 62
0000003

$ hexdump <<< "Bob"
0000000 42 6f 62 0a
0000004

您实际上是为两个不同的字符串计算MD5校验和,因此输出的差异。如果您不从echo的输出中取消换行符,则会得到与此字符串相同的结果:

$ echo Bob | md5
a2eae7400008e77790c3272f754a14db