md5sum returns 个不同的值与 "same" 个字符串

md5sum returns different values with "same" strings

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

>echo -n Bob | md5sum 
 2fc1c0beb992cd7096975cfebf9d5c3b

但在另一种情况下。

>md5sum <<< Bob 
a2eae7400008e77790c3272f754a14db

这里发生了什么?有什么建议吗?

实际上你的例子中的输出是一样的。然而, 从第一个示例中删除选项 -n

echo Bob | md5sum

这里的字符串包含一个隐含的换行符(0x0a 十六进制)。比较

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

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

您实际上是在计算两个不同字符串的 MD5 校验和,因此输出不同。如果不从 echo 的输出中抑制换行符,您会得到与此处字符串相同的结果:

$ echo Bob | md5
a2eae7400008e77790c3272f754a14db