Hallo liebes Forum. Hab da mal ne Frage um komme nicht weiter. Habe da einen LUCA Schlüsselanhänger mit diesem Code NMHS - 8P9Q - CA92. Der soll 4 Byte sein. Siehe: jeder beliebige 8-Byte-Wert Prüfsumme ist der SHA-256-Hash, der auf 4 Byte der zuvor beschriebenen Daten gekürzt und leicht generiert werden kann. ephemeral_keys = a new secp256r1 key pair (for DLIES with the daily public key) dh_key = ECDH(ephemeral_keys.private, daily_keypair.public) enc_key = SHA256(dh_key || 0x01) # truncated to 16 bytes iv = ephemeral_keys.public # truncated to 16 bytes enc_data = AES-128-CTR(userId || data_secret, enc_key, iv) Ich möchte einfach selber einen Key z.B.: NMHS - 8P9Q - CA92 rückwärts generieren. Ich gebe die Buchstaben und zahlen vor und am Schluss kommt ein 4 Byte Key raus. Ist das möglich? Gruß Susi
Mit Key meinst du wohl die Daten, von dem SHA Algorithmus als Eingabe gegeben wurden. Der SHA Algorithmus erzeugt einen Hash von diesen Daten. Möchtest du das Ganze Rückgängig machen, also den Hash wieder zurück in den ursprünglichen key umwandeln? Das geht nicht, genau das zu verhindern ist eine der Hauptaufgaben des Algorithmus. Du kannst auch ein herausgeschnittenes Stück von einem Foto von einem Kuchen nicht zurück in die Zutaten des Kuchens umwandeln. In etwa so unmöglich ist dein Vorhaben.
Hallo vielen Dank für deine Antwort. Ich möchte einen Code Vorgeben A1B2 C3D4 E5F6 zum Beispiel und unter berücksichtigung der berechnung damit sie am Schluss richtig ist ( jeder beliebige 8-Byte-Wert Prüfsumme ist der SHA-256-Hash, der auf 4 Byte der zuvor beschriebenen Daten gekürzt und leicht generiert werden kann ) Quasi jeder belibige Zahlenkomi anerkannt wird. mmmhhhhh verständlich geschrieben? Gruß
Wenn ich OP richtig verstehe will er eine kryptografische Hash Funktion umkehren, das geht nicht. Besser: Das soll bei einer ordentlich aufgebauten Funktion absichtlich nicht gehen. Als Ausweg würde Durchprobieren bleiben: Man generiert eine riesige Menge an Keys und hat dann eine 1:4e9 Chance das zufällig einer passt. Einen Menschen könnte man wegen der nur 4 Bytes damit überlisten, eine Maschine die die vollen 32 Byte des SHA256 vergleicht natürlich nicht.
Chris B. schrieb: > mmmhhhhh verständlich geschrieben? Nein. Was ist wovon der Hash-Wert? Sind die 4 Byte ein Teil von dem aus den zu sichernden Daten berechneten Hash-Wert? Was für ein Zusammenhang besteht zwischen den 4 Byte und dem 12 Zeichen Code? Wenn die 4 Byte bereits ein Hash-Wert sind, was spielt das für die Umformung 4 Byte Wert in 12 Zeichen Code bzw. deren Umkehr für eine Rolle?
Chris B. schrieb: > Prüfsumme ist der SHA-256-Hash, der auf 4 Byte der zuvor beschriebenen > Daten gekürzt und leicht generiert werden kann. Genau lesen und nachdenken. Die Situation ist wie folgt: Prüfsumme = AufVierBytesGekürzt( SHA256( einigeBytesDaten ) ) D.h. man beginnt mit "einigeBytesDaten", konkret in diesem Falle mit dem dh_key, berechnet davon SHA-256, und nimmt von diesem Ergebnis vier Bytes. Du kannst zwar, per Brute-Force sogar recht überschaubar, eine Bytefolge für "einigeBytesDaten" finden (den mutmaßlichen dh_key), dessen gekürzte SHA-256-Summe so ist wie Du haben willst. ABER: Die gefundene Bytefolge "einigeBytesDaten" sind kein gültiger dh_key, sondern einfach nur zufällige Bytes, also nutzlos.
Chris B. schrieb: > mmmhhhhh verständlich geschrieben? nein! Dafür gab es früher mal Mathematik und solche Probleme zu beschreiben.
Ich hab's jetzt 3x gelesen und immer noch nicht verstanden. Ich sehe da einen Code bestehend aus 12 ASCII Zeichen. Wo ist der "8 Byte Wert", und wo ist der "4 Byte Key"? Weiss der TO überhaupt, was ein Hash ist und wozu man sowas braucht?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.