【发布时间】:2009-10-22 03:32:23
【问题描述】:
根据维基百科,一个空字符串的md5和是d41d8cd98f00b204e9800998ecf8427e
我用我的 md5 库确认了这一点
但是,当我运行时
echo "" | md5sum
在我的 linux shell 中,我得到 68b329da9893e34099c7d8ad5cb9c940 -
事实上,我的哈希值都不匹配 md5sum 命令的输出。
对这种差异有什么想法吗?
【问题讨论】:
根据维基百科,一个空字符串的md5和是d41d8cd98f00b204e9800998ecf8427e
我用我的 md5 库确认了这一点
但是,当我运行时
echo "" | md5sum
在我的 linux shell 中,我得到 68b329da9893e34099c7d8ad5cb9c940 -
事实上,我的哈希值都不匹配 md5sum 命令的输出。
对这种差异有什么想法吗?
【问题讨论】:
使用该命令,您正在计算单个换行符的 md5sum。试试吧:
echo -n "" | md5sum
【讨论】:
你必须消除 echo 产生的新行
$ echo -n '' | md5
d41d8cd98f00b204e9800998ecf8427e
【讨论】:
试试:
echo -n | md5sum
如果没有'-n',echo 会输出一个换行符,md5sum 会对其进行适当处理。
【讨论】:
使用更便携的 printf
printf "" | md5sum
【讨论】: