![]() |
irreversible Funktion?!
Ist diese Funktion irreversibel oder kann man ein Rekonstrukt anhand des Ergebnisses erstellen?
i << 24 + i2 << 16 + i3 << 8 + i4 = Ergebnis lassen sich nun i-i4 wiederherstellen aus dem Ergebnis? Ich denke das ist nicht machbar, was meint ihr? |
Re: irreversible Funktion?!
Nur unter der Vorraussetzung, dass i{n} Bytewerte sind, ist es umkehrbar.
|
Re: irreversible Funktion?!
hast du auch einen Link oder eine ausführlichere Erkläuterung wie dies zu bewerkstelligen wäre?
schließlich werden die Bytewerte nirgends zwischengespeichert. Einmal das Ergebnis berechnet sind somit 4 unbekannte in der Gleichung. |
Re: irreversible Funktion?!
Dein Ergebnis ist ein 32bit-Wert. <<(8n) schiebt einen Wert um n Byte nach links. Was du da tun würdest, wäre einen Integer aus 4 Byte zusammenzusetzen.
i << 24 + i2 << 16 + i3 << 8 + i4 = Ergebnis i = Ergebnis >> 24 i2 = (Ergebnis >> 16) && 255 i3 = (Ergebnis >> 8) && 255 i4 = Ergebnis && 255 Wenn aber ein i{n} nicht mehr in ein Byte passt, wrapt der Wert dank des + auf das nächste Byte: die Funktion ist nicht mehr umkehrbar. Beispiel: i = 0, i2 = 0, i3 = 1, i4 = 0 -> Ergebnis = 256 Das selbe nochmal: i = 0, i2 = 0, i3 = 0, i4 = 256 -> Ergebnis 256 Derjenige, der das Ergebnis hat, kann ohne weiteres Wissen nicht zuverlässig sagen, was du gemeint hast - wenn er aber weiss, dass i{n} Bytes sind, kann er das. |
Re: irreversible Funktion?!
Nein. Du fügst lediglich 4 Bytewerte zu einem Integer (4 Byte Ganzzahl Typ) zusammen. Die Extraktion der Bytes folgt erneut durch Schiebung:
i = (ergebnis >> 8/16/24) & 0xff; Lg oli |
Re: irreversible Funktion?!
super vielen Dank, hätte nicht gedacht, dass es so einfach ist. Muss mich auf diese Gebiet noch schlau machen :).
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 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-2025 by Thomas Breitkreuz