喬遷啟示:因應實體教室租約到期,富捷培訓於八月起將在長安新址,以線上直播教學為您服務,懇請舊雨新知繼續支持與指教。 地址:台北市長安東路二段201巷19號之1一樓,電話: 02-27116373

14 九月 2013

Perl MD5 checksum 模組 Digest::MD5 – 檔案完整性確認

Perl MD5模組 Digest::MD5 使用方式

常見誤用方式是把檔案名稱當成checksum的資料,因此會與Linux指令md5sum所產生的字串值不同,因此,使用Digest::MD5對檔案做checksum之前,需先把檔案內容讀出來,設給一個scalar variable,再針對該scalar variable做checksum即可!

範例原始碼如下:

#!/usr/bin/perl

use Digest::MD5 qw(md5 md5_hex md5_base64 );

open(F, ‘services’ ) or die “Can’t open file.\n”;

@file = ;
$file = join(”, @file );

system( “md5sum services” );
system( “md5sum man” );

my $md5result = md5_hex( $file );
print “$md5result\n”;

======= 執行結果如下 ===========

geego@testbed:~/perl/md5$ ls -l
total 44
-rw-r–r– 1 geego geego 18861 Sep 14 17:34 man
-rw-rw-r– 1 geego geego 264 Sep 14 17:40 md5.pl
-rw-r–r– 1 geego geego 18861 Sep 14 17:30 services
geego@testbed:~/perl/md5$ perl md5.pl
a554f8e7fb110364e5843d1b81d57b4b services
a554f8e7fb110364e5843d1b81d57b4b man
a554f8e7fb110364e5843d1b81d57b4b
geego@testbed:~/perl/md5$