为什么md5不匹配Perl的Digest :: MD5输出?

Ant*_*ony 4 perl ksh md5

从ksh终端运行md5函数与简单的Perl脚本的输出不匹配.

在终端我运行:

echo -n abc | md5
62fecf21103616856d72e6ffc9bcb06b
Run Code Online (Sandbox Code Playgroud)

如果我使用Perl运行它:

use Digest::MD5 qw(md5_hex);

foreach (@ARGV) {
   print "Digest is ", md5_hex($_), "\n";
}
exit
Run Code Online (Sandbox Code Playgroud)

我明白了

./perl_test.sh abc
Digest is 900150983cd24fb0d6963f7d28e17f72
Run Code Online (Sandbox Code Playgroud)

在我看到的所有示例和md5函数本身的示例中,Perl看起来正确,但仅使用Ksh 的示例不是:

md5 -x
MD5 test suite:
MD5 ("") = d41d8cd98f00b204e9800998ecf8427e
MD5 ("a") = 0cc175b9c0f1b6a831c399e269772661
MD5 ("abc") = 900150983cd24fb0d6963f7d28e17f72
Run Code Online (Sandbox Code Playgroud)

gho*_*g74 5

使用更便携 printf

printf "abc" | md5
Run Code Online (Sandbox Code Playgroud)