Geggi: mcrypt / Initialisierungsverktor merken?

Hallo,

in den Beispielen

"Beispiel #2 Using mcrypt_module_open() in encryption"
  http://www.php.net/manual/de/function.mcrypt-module-open.php

"Beispiel #1 mdecrypt_generic() example"
  http://www.php.net/manual/de/function.mdecrypt-generic.php

der PHP-Doku. ist beschrieben, wie man Daten ver- und entschluesselt.
Beide Beispiele sind dabei fast identisch.

Es war für mich keine sonderliches Problem, aus den Beispielen
zwei Programme zu machen - ein encode und ein decode Programm.
Das ist fast schon durch Splitten eines Beispiels in zwei Dateien
und Einfuegen von ein paar mcrypt_module_open(), mcrypt_module_close()
etc. erledigt.

Mein Problem ist nun, das ich in dem Programm zum decodieren den
Initialisierungsverktor (in den Beipielen in $iv gespeichert)
nicht identisch generiert bekomme. Mir ist ja klar, das ich
das Passwort im Kopf, und die verschlüsselten Daten auf Platte
speichern muss. Aber muss man sich den Initialisierungsverktor
auch merken???

Oder mache ich da was Falsch???

Danke für Antwort, Geggi

  1. Aber muss man sich den Initialisierungsverktor auch merken???

    Ja, der muss bei Verschlüsseln und Entschlüsseln gleich sein.
    Bei manchen Verschlüsselungen wirkt sich der erste Teil auf die Verschlüsselung des zweiten aus, der 2. auf den 3. usw. er IV wird dann für den allerersten Block verwendet, weil da gibts ja keinen vorigen Block. Deshalb muss der gleich sein.

    Du kannst den ja auch irgendwie aus dem Passwort generieren wenn du willst. Oder du machst ihn fest in die Programme rein, ich denke nicht dass man damit ein großes Sicherheitsrisiko eingeht.