checksummen bei gleichem input unterschiedlich
pother_dane
- programmiertechnik
0 LX0 dedlfix0 hotti0 pother_dane0 pother_dane0 Tom0 hotti
hallo,
vorneweg: ich bin keine profi der computerei und bitte deshalb evetuell falsch verwandtes vokabular zu verzeihen.
anlässlich eines rätsel dass ich lösen soll spiele ich derzeit mit checksummen (md5, sha1 etc.) rum. es gilt einen string zu "erraten" vom dem der ungefähre inhalt bekannt ist und der sehr wahrscheinlich mit irgendeinem verfahren gechecksummt wurde. würde man ja meinen: kein großes problem, kleines programm schreiben und die strings durchprobieren bis einer passt. ich kam aber zu keinem ergebnis und im verlauf des troubleshootings machte ich folgende beobachtung: php, python und javascript/node.js sind sich bei der erstellung von checksummen einig - d.h. schmeiß ich den gleichen string in die jeweilige funktion kommt hinten zuverlässig die gleiche checksumme raus. dabei ist egal welchen algorithmus ich verwende. schmeiß ich allerdings den gleichen string auf md5sum/shasum/sha1sum/etc. in der CL kommt zuverlässig ein andere checksumme als bei den oben erwähnten raus.
klar, da könnte man drumrum arbeiten. interessieren würd mich trotzdem wie es zu den unterschiedlichen summen kommt.
danke schonmal,
henning aka pD
Ich würde mutmaßen, dass es etwas mit der Codierung der Daten zu tun hat. Ist natürlich nur geraten, aber vielleicht ein lohnender Ansatzpunkt.
Gruß, LX
Hi!
php, python und javascript/node.js sind sich bei der erstellung von checksummen einig [...] schmeiß ich allerdings den gleichen string auf md5sum/shasum/sha1sum/etc. in der CL kommt zuverlässig ein andere checksumme als bei den oben erwähnten raus.
Checksummen arbeiten mit Bytewerten, nicht mit den Zeichen. Schau also nach, welche Bytewerte du verarbeitest. bin2hex() für PHP wäre dafür geeignet und hexdump von der Linux-CL.
Lo!
hallo,
.. in der CL kommt zuverlässig ein andere checksumme als bei den oben erwähnten raus.
Evntl. ist in der CL (Command Line) das "Enter-Zeichen" (Return) mit dabei?
Hotti
hallo,
Evntl. ist in der CL (Command Line) das "Enter-Zeichen" (Return) mit dabei?
daran hab ich auch schon gedacht. soweit ich das überblicke (wie gesagt, ich bin amateur) sollte doch so
$ md5sum <(echo "foobar")
oder
$ echo "foobar" | md5sum
kein linefeed dabei sein... ... ... oder?
henning aka pD
stop!
Evntl. ist in der CL (Command Line) das "Enter-Zeichen" (Return) mit dabei?
das war es doch. ich wusste nicht, dass echo immer ein newline dranhängt. wenn ich das unterdrücke
$ echo -n "foobar" | md5sum
ergibt alles einen sinn. die checksummen stimmen jetzt alle, das programm passt und meine schöne theorie von der lösung ist dahin... super!
danke und gruß,
henning aka pD
Hello,
.. in der CL kommt zuverlässig ein andere checksumme als bei den oben erwähnten raus.
Evntl. ist in der CL (Command Line) das "Enter-Zeichen" (Return) mit dabei?
Da sprach der Praktiker und traf ins Schwarze ;-))
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Helo,
Evntl. ist in der CL (Command Line) das "Enter-Zeichen" (Return) mit dabei?
Da sprach der Praktiker und traf ins Schwarze ;-))
Naja, es war nur eine Vermutung. Dass "echo" auch noch im Spiel ist, wusste ich nicht. Indes: Aus der Praxis, Eingaben in ein Perl-Script, like
my $in = <STDIN>;
erfordern schon ein
chomp $in;
damit die Newline wegfliegt, sonst isse mit dabei ;-)
Viele Grüße,
ab morgen wieder offline (Baustelle),
der Oppenheimer