CRC32 Hashvalues berechnen

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

David

Betreff: CRC32 Hashvalues berechnen

BeitragDo, Sep 29, 2005 22:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Heute habe ich (für die Arbeit) in C++ eine Klasse geschrieben, die einen CRC32 Hashwert von beliebigen Daten erzeugt.
Da ich sowas noch nicht im Codearchive gefunden habe, hab' ich das ganze nochmal in BlitzBasic geschrieben, in der Hoffnung das jemand Nutzen daraus ziehen kann! Wink

BlitzBasic: [AUSKLAPPEN]

Graphics 800, 600, 32

Dim CRCTable( 255 )

InitCRC32()
value$ = Input( \"Eingabe: \" )
crc32 = ComputeCRC32( value )

Print \"CRC32 Hashwert: \" + Hex( crc32 )

WaitKey

Function InitCRC32()
poly% = 3988292384

For i% = 0 To 255
crc% = i

For j% = 0 To 7
If ( crc And 1 )
crc = ( crc Shr 1 ) Xor poly
Else
crc = crc Shr 1
EndIf
Next

CRCTable( i ) = crc
Next
End Function

Function ComputeCRC32( value$ )
Length% = Len( value )
hash% = 4294967295

For i% = 1 To Length
char$ = Mid( value, i, 1 )
hash = CRCTable( ( hash Xor Asc( char ) ) And 255 ) Xor ( hash Shr 8 )
Next

hash = ( hash Xor 4294967295 )

Return hash
End Function


grüße
 

ke^kx

BeitragFr, Sep 30, 2005 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Was genau ist ein "CRC32 Hashwert" und was kann man damit machen? Sad

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM
 

David

BeitragFr, Sep 30, 2005 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Hier weitere Infos: http://de.wikipedia.org/wiki/C...ancy_Check

Kannst zu z.B. beim Netzwerktransfer verwenden um zu checken ob alle Daten korrekt empfangen wurden usw...
Gibt da noch ne Menge anderer Algorithmen, die u.a. sicherer sind MD5, SHA etc... aber CRC32 ist dafür von der Berechnung her schneller.

grüße
 

BlackTermi

BeitragFr, Sep 30, 2005 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
ein CRC32 Hashwert ist ein 32 bit hash, ich glaube die grössten hashwerte die man ohne tricksen bekommen kann sind 64 bit.
hashwerte werden mit übergeben bei datenübertragugen um sicherzustellen das alles richtig funktioniert hat, sprich hashwert wird mit übergeben, der, der die datei bekommen hat liest auch einen hash aus seiner neuen datei und vergleicht ob die übereinstimmen, wenn ja dann ist die datei richtig übertragen worden.

ich hoffe ich konnte das jetzt einigermassen verständlich erklären, mir fehlt manchmal die möglichkeit mich verständlich auszudrücken Smile



/edit

mist, war nicht schnell genug
 

ke^kx

BeitragFr, Sep 30, 2005 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, verstehe. Wird mir sicher bald mal nützen.

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group