考虑以下:
% md5sum /dev/null
d41d8cd98f00b204e9800998ecf8427e /dev/null
% touch empty; md5sum empty
d41d8cd98f00b204e9800998ecf8427e empty
% echo '' | md5sum
68b329da9893e34099c7d8ad5cb9c940 -
% perl -e 'print chr(0)' | md5sum
93b885adfe0da089cdf634904fd59f71 -
% md5sum ''
md5sum: : No such file or directory
首先,我对所有这些命令的输出感到惊讶。如果有的话,我希望他们所有人的总和都是相同的。
“nothing”(零长度字符流)的 md5sum 是 d41d8cd98f00b204e9800998ecf8427e,您在前两个示例中看到了这一点。
第三和第四个例子是处理单个字符。在“echo”的情况下,它是一个换行符,即
$ echo -ne '\n' | md5sum
68b329da9893e34099c7d8ad5cb9c940 -
在 perl 示例中,它是值为 0x00 的单个字节,即
$ echo -ne '\x00' | md5sum
93b885adfe0da089cdf634904fd59f71 -
您可以使用“echo”重现空校验和,如下所示:
$ echo -n '' | md5sum
d41d8cd98f00b204e9800998ecf8427e -
...并使用 Perl,如下所示:
$ perl -e 'print ""' | md5sum
d41d8cd98f00b204e9800998ecf8427e -
在所有四种情况下,您应该期望对相同数据进行校验和得到相同的输出,但不同的数据应该产生截然不同的校验和(这就是重点 - 即使它只是一个不同的字符。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)