Passwörter in Datenbank?

callmeagent

Grünschnabel
Hallo *,

ich habe folgendes Problem. Ich möchte in einer vorhandenen Tabelle Usernamen und Passwort ablegen. Damit nicht jeder, der (egal wie) meine Datenbank sich anschaut gleich alle Passwörter sieht, würd ich die gern verschlüsseln.

Ich kann aber kein md5sum() benutzen, da die abgelegten Passwörter nicht für eine Überprüfung benötigt werden, sondern nachher auch wieder entschlüsselt werden müssen ohne die Eingabe durch den Benutzer...

Mein Problem ist: Wie löse ich das am sichersten? Gibt es eine Funktion in php zur Verschlüsselung oder kann das vielleicht Oracle? (ist nämlich ne Oracle DB)

Besteht irgendeine Möglichkeit, die Passwörter zu ver-/ bzw. entschlüsseln, ohne den Schlüssel im Klartext in einem PHP Skript hinterlegen zu müssen. (Wobei ich eigentlich nur ungern will, dass die Benutzer den Schlüssel ständig eingeben müssen oder so...)


Danke schonmal im vorraus für eure Hilfe!


Grüße,

cma
 
Hi,

also mit PHP kannst du sowas über die mcrypt() Funktionen lösen.
Wie diese genau funktionieren kann ich dir leider nicht sagen, da ich selber noch nicht mit diesen gearbeitet habe!

Alternativ könntest du auch das str_rot13() Verfahren verwenden. Dies ist nicht gerade sicher, dennoch wird das Passwort nicht im Klartext wiedergegeben!

Allerdings frage ich mich gerade, warum du die Passwörter der Benutzer wieder entschlüsseln willst, wenn der Benutzer sein Passwort vergisst, bekommt er normalerweise eine neues, und kann dies anschließend eh wieder ändern.

Naja, bleibt ja jedem selbst überlassen :)

mfg

Devil
 
Vielen Dank für die schnelle Info!

Es geht nicht direkt um eine Benutzeranmeldung... Da geb ich dir vollkommen Recht. Ein md5 ist da die weitaus besser Wahl, da das Passwort nicht reproduzierbar ist. Es geht hier speziell um meine Anmeldedaten auf irgendwelchen Webseiten. Ich hab mich schon so oft darüber geärgert, dass ich meinen User oder das Passwort vergessen habe... Nun will ich auf einer DB, auf der ich freundlicher Weise Zugriff gestattet bekommen habe, eine URL, User und Passwort speichern. Dadurch hab ich selbst im Urlaub Zugriff darauf.... Darum geht es mir eigentlich :D

Deswegen will ich den Schlüssel für die Verschlüsselung auch ungern im Klartext in einer PHP Seite ablegen. Denn sollte es mal wirklich passieren, dass jemand den Server "knackt", dann hat er alle meine Passwörter... Und das will ich ja nicht :)

Ich muss mal schauen... Ich danke dennoch für die großartige und schnelle Hilfe!


Grüße,

cma
 
Achso, na dann ist ja alles klar.

Wenn du eine Datenbank nur für dich brauchst, würde ich dir die Caesarchiffre (Zuerst lesen!) empfehlen.

Anstelle des Alphabets, kannst du hier (was auch sehr zu empfehlen ist) die ASCII Tabelle verwenden.

Ein Zeichen kannst du mittels ord() in einen ASCII Wert umwandeln, und dann einfach den entsprechenen Schlüssel dazu addieren, und mit chr() wieder in ein lesebares Zeichen zurück wandeln.

Bei der Entschlüsselung gehst du genauso vor, nur dass du halt den Schlüssel subtrahieren musst, um an das Klartext Passwort zu kommen.

Vorteil von dieser Methode: Deine Passwörter sind durch einen Schlüssel geschützt, den es erst zu erraten gilt, und deine Passwörter sind nicht im Klartext gespeichert.

Ein grosser Nachteil ist natürlich, dass das Passwort ziemlich leicht reproduzierbar ist, sofern man die Verschlüsselung dazu kennt.

mfg

Devil

PS: Als Schlüssel, kann man auch einen negativen Wert benutzen!
 
Zuletzt bearbeitet:
Danke für die Hilfe zu so später Stunde Devil ! :)


Werd mir das direkt mal durchlesen, was bei wikipedia diesbezgl. alles steht...


Grüßunk,

cma
 
Zurück