CRC32 rückgängig machen

8

Ich suche nach einer Möglichkeit, eine CRC32-Prüfsumme rückgängig zu machen . Es gibt Lösungen, aber sie sind entweder schlecht geschrieben , extrem technisch und / oder in der Versammlung . Assembly ist (derzeit) jenseits meines Wissens, also hoffe ich, dass jemand eine Implementierung in einer höheren Sprache zusammenstellen kann. Ruby ist ideal, aber ich kann PHP, Python, C, Java, etc. parsen.

Irgendwelche Abnehmer?

    
pat 03.10.2009, 15:26
quelle

4 Antworten

17

Ein CRC32 ist nur reversibel, wenn die ursprüngliche Zeichenkette 4 Byte oder weniger ist.

    
Cade Roux 03.10.2009, 15:28
quelle
5

Lesen Sie dieses schöne Dokument .

Dies ist C #:

%Vor%     
Fozi 22.10.2009 15:28
quelle
1

Sie können es umkehren, indem Sie die Bits zurücksetzen, um die ursprünglichen 32 Bits zu erzeugen, wenn Sie das Poly kennen, mit dem es erstellt wurde. Aber wenn Sie versuchen, das CRC32 von einer gegebenen Datei umzukehren und eine Reihe von Bytes am Ende der Datei anzuhängen, um mit dem ursprünglichen CRC übereinzustimmen, habe ich Code in diesem Thread in PHP gepostet:

Ich habe ein bisschen Zeit damit verbracht, also hoffe ich, dass es jemandem helfen kann, der an schwierigeren Problemen arbeitet: CRC32 rückgängig machen Prost!

    
Jeremy Adsitt 15.11.2012 09:46
quelle
0

Cade Roux hat Recht, CRC32 umzukehren.

Die von Ihnen erwähnten Links stellen eine Lösung dar, um einen CRC zu reparieren, der durch Änderung des ursprünglichen Byte-Streams ungültig geworden ist. Dieses Update wird erreicht, indem einige (unwichtige) Bytes geändert und der ursprüngliche CRC-Wert neu erstellt wird.

    
Frank Bollack 03.10.2009 15:58
quelle