echo $begrüßung;
Das was du beschriebst ist das Challenge-Response-Verfahren. Ob das mir einer Datenbankabfrage zu realisieren ist, versuche ich irgendwann nach dem Aufstehen nochmal zu bedenken.
So könnte es vom Prinzip her funktionieren (Codeteile in Pseudocode):
Die Application verschlüsselt einen Zufallswert anhand des eingegebenen Passworts und ermittelt so den Challenge-Wert: challengewert = encrypt(zufallswert, passwort)
Dieser wird mit der folgenden Abfrage an die DB gesendet.
select encrypt(decrypt(challengewert, passwortspalte) + veränderung, passwortspalte) as response
from table where username=...
Zurück kommt der Response-Wert:
if (decrypt(response, passwort) == zufallswert + veränderung)
Passwort richtig
"+ veränderung" steht hier für eine beliebige nicht näher spezifizierte Berechnung. Ich denke, dass diese Prozedur nur der DB und der Anwendung bekannt sein sollte. Das könnte auf DB-Seite eine Stored Procedure sein. Wenn das nicht möglich ist, könnte ich mir auch eine Berechnung mit einem in einer Konfigurationswerte-Tabelle enthaltenen Wert vorstellen, so dass ein man-in-the-middle es durch diesen unbekannten Wert noch etwas schwerer hat.
echo "$verabschiedung $name";