Je nach dem ob du es als ByteArray oder als Word-/Long-/QuadArray speicherst kanns da schon zu Diskrepanzen kommen. Allerdings speichert man MD5 als String bzw. ByteArray, wo der Endian eigentlich Banane ist (man könnte mit Gewalt was anderes erzwingen, aber wer will das schon?). Interessant wird der Endian bei Wörtern, die in ein Register des Prozessors passen und größer als die kleinste Wortgröße (bzw. Byte) sind. Bei UTF16 ist dies z.B. der Fall. Die BOM gibt direkt einen Hinweis darauf, in welchem Endian sich die Daten befinden.STARGÅTE hat geschrieben:Soll heißen: In einem MD5 wo mit der Wortgröße 32Bit ein 128Bit Fingerprint erstellt wird, bleibt die Wortreihenfolge egal ob Littel oder Big-Endian die selbe? Es wird also immer nur das Wort selbst gedreht?DarkDragon hat geschrieben:Ich bezweifle, dass du einen kompletten Speicherbereich swappen musst, sondern eher die einzelnen Worte. D.h. wenn du einen Fingerprint in einer durch 16Bit Worte aufgeteilten Struktur hast musst du jedes 16Bit Wort einzeln byteweise swappen.
Endianness (Bytereihenfolge) und Fingerprints
-
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: Endianness (Bytereihenfolge) und Fingerprints
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.