Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7984[/thread]

MD5 über Zahlen-Array



<< >> 2 Einträge, 1 Seite
ThomasDr
 2006-05-16 12:06
#66143 #66143
User since
2006-05-16
2 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich hoffe Ihr könnt mir (einem perl-newbie) bei der Lösung des folgenden Problems helfen. Den zweiten aktuellen Thread zum Thema md5 habe ich schon gesehen, er zielt jedoch in eine andere Richtung.

Ich möchte eine MD5-Summe über ein Array von Zahlenwerten bestimmen. Ich habe verschiedene Wege dazu versucht, aber komme auf keine plausiblen Ergebnisse. Bei meinen Versuchen habe ich verschiedene Wege versucht. Der Einfachheit halber hier zwei Minimallösungen :

Code: (dl )
1
2
3
4
5
6
7
$testa = ("ABCDEFGHIJKLMNOP");

$md5 = Digest::MD5->new;
$md5->reset;
print $testa."\n";
$md5->add ($testa);
print uc ($md5->hexdigest)."\n\n";


liefert als Ergebnis : 19FC8EFF82037F1FC0D8EA1D32B5E339

wenn ich die ASCII-Zeichenwerte in ein Array eintrage und dessen Summe versuche zu berechnen, erwarte ich dasselbe Ergebnis - welches sich jedoch nicht einstellt ...

Code: (dl )
1
2
3
4
5
6
7
8
9
10
@testb = (  65,   66,   67,   68,   69,   70,   71,   72,   73,   74,   75,   76,   77,   78,   79,   80);

$md5->reset;

for $i (0..15) {
 $md5->add (@testb[$i]);
 printf ("%02X",@testb[$i]);
}
print ("\n");
print uc ($md5->hexdigest);


hier ergibt sich 920CBF26C2A37AE8A2640C3C3A1FDBA7

Wer hat eine Idee, wo mein Fehler liegt und kann mir helfen ? Wird ein String-Ende-Zeichen versehentlich mit berücksichtigt o.Ä. ?

Vielen Dank,
Thomas
esskar
 2006-05-16 16:20
#66144 #66144
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ganz einfach:

Code: (dl )
1
2
3
4
5
6
7
8
my $testa = "ABCDEFGHIJKLMNOP";
my @testb = (65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80);
print "$testa\n";
print "@testb\n";

#aber

print join('', map { chr } @testb),"\n";
<< >> 2 Einträge, 1 Seite



View all threads created 2006-05-16 12:06.