ich habe mal testweise ein Programm geschrieben, dass praktisch eine Zeichenkette und gleichzeitig den zugehörigen SHA1-Hashwert ausgeben soll. Klappt auch alles soweit ganz gut, bis auf dieses störende Phänomen, dass bei manchen Zeichenketten der Hash-Wert nur 39 oder sogar nur 38 anstatt 40 Zeichen lang ist. Dies fiel mir auf, als ich auf die Idee kam folgendes auszuprobieren:
Anhand eines zweidimensionalen char-Array's, dass aus 10 x 8 Feldern besteht, d.h. 10 Zeilen mit jeweils 8 Spalten, werden mittels einer for-Schleife beim ersten Durchgang in der ersten Zeile alle 8 Felder (Spalten) mit dem ASCII-Zeichen '0' initialisiert (Variablenwert = 48).
Code: Alles auswählen
int i, j;
for( i = 0; i < 10; i++)
{
for(j = 0; j < 8; j++ )
{
array[i][0] = 48;
array[i][1] = 48;
. = 48;
. = 48;
array[i][9] = i + 48;
}
}
Ich habe mir hier fertigen Source-Code bestehend aus folgenden Quellcode-Dateien: sha1.h, sha1.c, sha.c & shatest.c runtergeladen. sha1.h und sha1.c habe ich dann in meinem Programm implementiert.
Woran könnte das liegen, dass solche Fehler beim hashen entstehen? Hat jemand von euch schon ähnliche Probleme bzw. sogar dasselbe Problem gehabt? Wie könnte man das lösen?