Thread Sicheres verschieben von Files: FTP überträgt Files, Perl soll warten (9 answers)
Opened by Gast at 2005-01-17 01:23

format_c
 2005-01-17 09:05
#12669 #12669
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Dazu kannst du zum Beispiel das in der Standard Distributution enthaltenen CPAN:Digest::MD5

Code: (dl )
1
2
3
4
5
6
7
    use Digest::MD5;

   my $file = shift || "/etc/passwd";
   open(FILE, $file) or die "Can't open '$file': $!";
   binmode(FILE);

   print Digest::MD5->new->addfile(*FILE)->hexdigest, " $file\n";

Edit:
Jedoch kann es bei dem Algorithmus vorkommen dass nicht immer der String eindeutig ist. Die Wahrscheinlichkeit ist zwar gering aber da. Alternative ist CPAN:Digest::SHA1.

Hier ein kleiner Geschwinigkeitstest, der wie erwartet ausgefallen ist:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use Digest::MD5;
use Digest::SHA1;
use Benchmark;
my $md5 = Digest::MD5->new();
my $sha1 = Digest::SHA1->new();
open FILE,'<',$0 or die $!;
binmode FILE;


sub check_md5 {
$md5->addfile(*FILE)->hexdigest(),"\n";
}

sub check_sha1 {
$sha1->addfile(*FILE)->hexdigest(),"\n";
}

timethese(10_000_000,{
'Digest::MD5'=> \&check_md5,
'Digest::SHA1' => \&check_sha1
}
);
_ _ END _ _
Benchmark: timing 10000000 iterations of Digest::MD5, Digest::SHA1...
Digest::MD5: 27 wallclock secs (26.73 usr + -0.01 sys = 26.72 CPU) @ 374251.50/s (n=10000000)
Digest::SHA1: 43 wallclock secs (43.20 usr + 0.00 sys = 43.20 CPU) @ 231465.41/s (n=10000000)



Gruß Alex\n\n

<!--EDIT|format_c|1105946299-->

View full thread Sicheres verschieben von Files: FTP überträgt Files, Perl soll warten