從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