Hi!
Der Aufbau ist Folgender: Jeder User loggt sich ein, kann z.b. sein Twitter Passwort setzen (und in die DB speichern), und dan mit Twitter Kommunizieren.
Präzisieren wir erst einmal dein Anwendungsszenario (unter anderem auch, um bestätigt zu bekommen, ob ich es richtig verstanden habe).
Du möchtest also eine Art Passwortaufbewahrung für viele Anwender aufbauen. Jeder Anwender legt darin Passwörter zu mehreren Drittsystemen ab. Ziel ist, dass du stellvertretend für sie über ihren Account bei diesen Drittsystemen Dinge anstellst. In dem Fall ist eine Hash-Lösung unbrauchbar, weil du nicht nur Vergleiche anstellen willst sondern sie im Klartext zwecks Weiterverwendung benötigst, und der Verweis auf den/die anderen derzeit laufenden Diskussionen dazu ist wenig zielführend. Mal abgesehen davon, wie vertrauenswürdig dich deine User einschätzen, um sich auf so etwas einzulassen und wie gut die Drittsystembetreiber es finden, wenn die Passwörter ihrer Mitglieder gebündelt auf anderen Systemen landen. Aber wenn ich schon diesen Aspekt ins Spiel bringe ... meine Lösung wäre, gar keine Passwörter dauerhaft zu sichern. Der Anwender muss pro Session und Dienst das jeweilige Passwort eingeben, am Ende der Session ist es weg. Damit gibt es immer noch Missbrauchspotential, wenn es gelingt, fremde Sessiondaten zu lesen. Aber es ist eben auf die Sessiondauer begrenzt (was die Sicherheitslage nur unwesentlich verbessert).
Das ist vermutlich keine Lösung für dich, weil du den Usern mehr "Komfort" anbieten willst, dass sie nicht ständig mit ihrem Passwort hantieren müssen. Der Wunsch ist verständlich, steht aber mehr oder weniger stark im Widerspruch zur Sicherheit.
Diese Problematik und Szenarien sind nicht neu. Und wenn ich mich nicht ganz irre, versuchen Systeme wie OpenID, eine umfassende Lösung anzubieten. Wenn man jetzt allein dein System betrachtet wird sich sicher ein Algorithmus finden, um die Passwörter zu verschlüsseln, zu dem der Schlüssel durch den Benutzer einzugeben ist. Die Schwachstelle ist die temporäre Aufbewahrung in den Sessiondaten. Eine "ordentliche" Lösung wäre sicher das OpenID, dazu müssen jedoch alle Beteiligten mitspielen.
Lo!