从ksh终端运行md5函数不匹配简单Perl脚本的输出。为什么md5不匹配Perl的Digest :: MD5输出?
在终端我运行:
echo -n abc | md5
62fecf21103616856d72e6ffc9bcb06b
如果我使用Perl运行:
use Digest::MD5 qw(md5_hex);
foreach (@ARGV) {
print "Digest is ", md5_hex($_), "\n";
}
exit
我得到
./perl_test.sh abc
Digest is 900150983cd24fb0d6963f7d28e17f72
在我所看到的样品和样品md5
函数本身的Perl看起来是正确的,但只使用Ksh的不是:
md5 -x
MD5 test suite:
MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
'echo'输出'c'和管道之间的空间吗? – 2010-02-16 01:42:37
md5不是ksh函数。顺便说一句,这也会得到符合你Perl版本的结果:'echo -e'abc \ c'| md5'。 @Anon:不,请尝试'echo abc | hd'(或'hexdump -C')。 – 2010-02-16 03:55:22