Passwort verschlüsseln (PHP)



  • Ich habe mir ein eigenes CMS in PHP programmiert. Da aber ich die Passwörter sonst immer einfach unverschlüsselt in die Datenbank abgelegt habe. Nun möchte ich einige Leute mitarbeiten lassen und natürlich nicht einfach die blanken Passwörter in der Datenbank stehen haben.

    Nun bräuchte ich eine Verschlüsselung, es muss nichts Grossartiges sein, es soll einfach nicht auf einen Blick zeigen wie das Passwort heisst. Die Verschlüsselung sollte nach vorne und hinten verwendbar sein. Das bedeutet das man das Passwort einfach verschlüsseln kann aber auch ohne Probleme wieder entschlüsseln kann.

    Greets CSBS2

    Danke schonmal im Voraus.



  • HI

    crypt() ist so weit ich weis standart.



  • md5 vielleicht ... ?

    rocknix ///



  • Hi

    crypt() benutzt doch MD5 !?



  • es sollte beidwegig sein crypt geht nur auf einem Weg, man sollte vershclüsslete Daten ohne Probleme auch wieder auslesen können



  • Original erstellt von <csbs2>:
    man sollte vershclüsslete Daten ohne Probleme auch wieder auslesen können

    Warum verschlüsselst Du dann überhaupt?



  • wenn die Leute ihr Passwort vergesse möchte ich denne ned gleich n neues schicken, die Idee ist das man nicht gleich auf dumme Gedanken komt



  • Hi

    Bin nich gerade ne php Profi. Aber dann schau dich doch ma nach nem Modul(wenns sowas gibt) um, das DES, oder IDEA, oder BLOWFISH oder so implementiert.



  • ja kennt niemand eine enfache Verschlüsselung die man auch einfach wieder entschlüsseln kann?



  • ja kennt niemand eine enfache Verschlüsselung die man auch einfach wieder entschlüsseln kann?



  • ich würde dir auch zu md5 raten, aber des magste ja aufgrund der Einseitigkeit net (alles andere ist aber net sicher)... mir fällt der Name der anderen Verschlüsselung net ein (geht beidseitig) google mal nach php+verschlüsselung oder schreib dir zur Not 'ne eigene...
    MfG

    Tobsen



  • Hi,

    Das Problem ist folgend: Wenn du eine Methoden suchst, mitdenen man Daten ent bzw. verschlüsseln kannst, bist du auf dem Falschen weg, da dir die Verschlüsslung nichts bringt. Jeder der das verschlüsselte Format hat, kann es dann einfach druch die Funk. laufen lassen die die Daten dann einfach wieder entschlüsselt. Klar weiß der nicht welches VA ( Verschlüsslungs Algo ) das ist, aber durch ein paar Testst kann man das auch herrausbekommen.

    Nun kommen wir zu einer Lösung: MD5

    MD5 verschlüsselt Daten aber kann diese nicht wieder "zurück holen".

    Eine Passwordabfrage läuft dann ungefähr so:

    PHP:
    
    $md5_psd = md5( $eingabe_psd );
    if( $md5_psd == $db_psd )
       => richtiges password
    

    Hier kann man dem User nicht mehr das vergessene Password mitteilen, desswegen wird einfach ein neues Password generiert und dann mit md5 verschlüsselung in die db gespeichert...

    Nun kann niemand, der die db mal gehackt hat das Password erkennen.

    Ich hoffe ich habe dir ein bisschen weitergeholden.

    Cu



  • Original erstellt von Tobsen:
    ich würde dir auch zu md5 raten, aber des magste ja aufgrund der Einseitigkeit net (alles andere ist aber net sicher
    Tobsen

    Alles andere is net sicher ? 😕
    Was isn das fürn quatsch ?



  • Ja, zweiseitige Verschlüsselungsalgos sind nicht besoders sicher, da sie sich eben entschlüsseln lassen. Deswegen sind ja auch die meisten Verfahren einseitig



  • Man kann ja auch eine Verschlüsselung benutzen, bei der für die Ver- und Entschlüsselung ein Passwort benötigt wird, dass z.B. in der PHP-Datei als Konstante gespeichert ist. Wer den Quelltext nicht einsehen kann, kann also auch nicht entschlüsseln.
    Möglich wäre eine einfache XOR-Verschlüsselung oder irgendetwas komplizierteres, wenn's einem nicht sicher genug ist.
    Ansonsten würde ich auch eher eine Einseitige Methode wie MD5 vorschlagen und dem Benutzer einfach ein neues Passwort zuschicken, weil's doch sicherer ist.

    Gruß,
    yanni



  • @prolog ich sagte, dass einseitige Verfahren net sicher seien und wenn du den Thread aufmerksam verfolgt hast, weißt du auch warum... 😉 ist also gar net so ein Quatsch :p 🙂



  • @tobsen
    Aber auch das stimmt nich ! 😉


  • Mod

    mysql bietet die funktion password - das ist wohl das beste



  • jepp Password ist eig die beste funktion für diesen Zweck.. allerdings ist die, genau, wie die anderen nur für einseitige verfahren gut. Aber ich würde dir auch unbedingt zu einem einseitigen verfahren raten, da sonst unbefugte schnell an dein passwort kommen.
    Wenn halt einer nen passwort vergessen hat, dann generierst du per zufall nen neues, trägst es in die datenbank ein und schickst es ihm per email zu. Und dann soll ers wieder ändern..

    cya



  • Wenn ich etwas mit crypt() verschlüssele, wie gross (wie viel char's) wird das dann? wenn ich z.B. ein wort mit der länge 10 char verschlüssele?



  • Nochwas:

    wenn ich z.B. crypt("test") speichere

    dieses verschlüsselte wieder aus der DB hole, und mit crypt("test") vergleiche, liefert mir das dann den wert true??


Anmelden zum Antworten