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
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