![]() |
Prüfsummer über gewisse Anzahl Integer-Werte
Hallo,
ich bekomme über eine Maschinensteuerung eine gewisse Anzahl an Integer-Werten (Koardinaten). Über diese Werte wollte ich gern eine Prüfsumme bilden, um festzustellen haben sich die Werte geändert oder gar ihre Reihenfolge ? Mit welchem Algorithmus ? Gibt es dazu schon BeispielCode ? Gruss RalfE |
AW: Prüfsummer über gewisse Anzahl Integer-Werte
Da gibt es verschiedene Möglichkeiten.
Man angenommen, die Integerwerte liegen in einem Array vor. 1.) Summe über alle Integerwerte bilden (ein Überlauf wird dabei gezielt in kauf genommen) 2.) XOR über alle Integerwerte bilden 3.) Eine CRC32 Prüfsumme über den Speicherblock des Arrays bilden 4.) MD4 Hashwert über den speicherblock des Arrays bilden Die Varianten 1 und 2 sind einfach und schnell zu berechnen aber nicht sehr sicher. Eine Vertauschung zweier Werte ändert die Prüfsumme nicht. Variante 3 ist schnell zu berechnen und die 32Bit-Prüfsumme in aller Regel ausreichend Variante 4 ist schon sehr sicher. Prüfsumme ist 16 Bytes lang. Man könnte statt MD4 auch MD5 verwenden; allerdings passt das einfachere und schnellere MD4 besser zur Aufgabe. |
AW: Prüfsummer über gewisse Anzahl Integer-Werte
Prüfsumme ...
CRC? Da gibt es Millionen ... du mußt dir nur eine aussuchen. 'ne Quersumme bilden, XOR+SHL+SHR, CRC16 oder CRC32 mit unterschiedlichen Polynomen, MD4, MD5, RipeMD160, RipeMD320, SHA und sonstige Hash-Verfahren uvm. ![]() |
AW: Prüfsummer über gewisse Anzahl Integer-Werte
Zitat:
Angenommen du kriegst die Werte 1,2,3,4 Dann kriegst du die Werte 1,2,4,3. Haben sich nun sowohl an Position drei, als auch an vier die Werte geändert und zufällig jeweils in den anderen Wert, oder... ...hat sich die Reihenfolge der Werte geändert? |
AW: Prüfsummer über gewisse Anzahl Integer-Werte
Hallo,
Danke für die Antworten. Ich merke mir die Prüfsumme, hat sich die neue Prüfsumme geändert (andere Werte, Reihenfolge geändert), so wird meine Auswerte-Routine aktiv. RalfE |
AW: Prüfsummer über gewisse Anzahl Integer-Werte
Zitat:
![]() Hierbei werden Daten und Prüfsumme beim Empfänger verwendet, der Empfänger errechnet die Prüfsumme neu aus den Daten! Wenn aber nur die Prüfsumme beobachtet wird, kann es durchaus sein dass zwei Datensätze aufeinanderfolgen, die verschieden sind aber die gleiche Prüfsumme erzeugen. Dann würde die "Auswerte-Routine nicht aktiv". |
AW: Prüfsummer über gewisse Anzahl Integer-Werte
Zitat:
Ein Prüfsummenalgorithmus muss ebenfalls jedes Byte der neuen Daten angucken und verrechnen. Stattdessen kannst du es auch gleich mit dem entsprechenden Byte der alten Daten vergleichen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz