Der Martin: verschlüsseln und entschlüsseln mit php

Beitrag lesen

Hi Cheatah,

  • und später mit dem selben passwort wieder entschlüsseln

Das hingegen ist hundsmiserabel. Du möchtest Passwörter *nicht* entschlüsselbar ablegen. Statt dessen möchtest Du das verschlüsselte Passwort mit der verschlüsselten Eingabe vergleichen.

dieser Ratschlag ist in Ordnung, wenn es nur darum geht, später eine Benutzereingabe gegen ein bereits vorhandenes verschlüsseltes Passwort zu prüfen - eben bei einer typischen Login-Abfrage.
Geht es aber darum, einen beliebigen Bytestream zu verschlüsseln und später unter Zuhilfenahme desselben Passworts wieder zu entschlüsseln, dann brauchst du _unbedingt_ einen reversiblen Algorithmus. Wie "gut", d.h. wie aufwendig der zu knacken ist, das ist wieder eine ganz andere Frage.

$verschuesselt = encoder( $passwort , $data );
Du möchtest Dir aber zunächst einen Verschlüsselungsalgorithmus aussuchen, der *nicht* reversibel ist

Nein, für die allgemeine Fragestellung ist das _nicht_ angebracht.

$entschuesselt = decoder( $passwort , $verschlüsselt );
Wenn Du auf diese oder andere Weise das originale Passwort erhalten kannst, ist der Algorithmus für Deine Zwecke unbrauchbar.

Jein. Aus einem mit einem reversiblen Algorithmus verschlüsselten Text ist es entweder möglich, unter Zuhilfenahme des richtigen Passworts den Originaltext zu rekonstruieren, oder bei Kenntnis des Originaltexts das Passwort herauszufinden. Habe ich beides nicht, ist die Verschlüsselung "theoretisch sicher". Okay, mit heuristischen Methoden kann man immer noch zum Ziel kommen, aber nicht anhand einer klar formulierbaren Prozedur. Die Erfolgschancen sind dann von der Komplexität der Verschlüsselung abhängig.

Schönen Abend noch,
 Martin

--
Die Zeit, die man zur Fertigstellung eines Projekts wirklich braucht, ist immer mindestens doppelt so lang wie geplant.
Wurde dieser Umstand bei der Planung bereits berücksichtigt, gilt das Prinzip der Rekursion.