Contao-Camp 2024
Ergebnis 1 bis 13 von 13

Thema: Konformes Passwort selbst erzeugen

  1. #1
    Contao-Nutzer
    Registriert seit
    03.11.2009.
    Beiträge
    60

    Standard Konformes Passwort selbst erzeugen

    Hallo,

    ich arbeite gerade an einem Authentication Plugin für das phpBB, sodass man sich dort mit seinen Contao Benutzerdaten anmelden kann. Aktuell hänge ich aber noch an der Passwortgenerierung, sprich wie ich ein Contao konformes Kennwort erzeugen kann. So wie ich das sehe brauche ich ja zum einen den encryptionKey und md5... Oder kann ich da auf eine bestimmte Funktion im System zurückgreifen, bin da ehrlich gesagt noch nicht ganz durchgestiegen oder macht es Sinn die Funktion kurz selbst zu basteln?

  2. #2
    Contao-Urgestein Avatar von FloB
    Registriert seit
    19.06.2009.
    Ort
    Sonnensystem
    Beiträge
    1.618

    Standard

    Hatten wir schon ein paar Mal, das Passwort wird mit SHA1 und Salt erzeugt. Code dürfte irgendwo in der User.php stehen.
    So long,
    FloB since Nov. 2007 +706P +115P and counting

  3. #3
    Contao-Nutzer
    Registriert seit
    03.11.2009.
    Beiträge
    60

    Standard

    Hi Flob,

    ich hatte es wie folgt versucht
    PHP-Code:
            $strSalt substr(md5(uniqid(''true)), 023);
            
    $passwordNew sha1($strSalt $password) . ':' $strSalt
    aber das ist ja leider nicht korrekt :-( Muss ich da nicht noch irgendwo den encryption key mit rein bringen? Sonst habe ich ja bei jedem Aufruf einen neuen Hash

  4. #4
    Contao-Nutzer
    Registriert seit
    03.11.2009.
    Beiträge
    60

    Standard

    Also ich habs zumindest mal bei einem Passwort geschafft den korrekten Wert zu erzeugen ^^^

    PHP-Code:
    $strSalt "631b.....";
            
    $pwd sha1($strSalt $password) . ':' $strSalt
    Was mir nur noch nicht ganz klar ist ... Der strSalt der hinten am Passwort dran hängt ist ja bei jedem Passwort untershciedlich, aber wir erzeuge ich den korrekt? Tweise habe ich einfach den Wert hinter dem : in der $strSalt gespeichert und schon passts

  5. #5
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Hallo asteireif,

    wenn ich den Code in der User.php richtig verstehe ist es wirklich so, dass für jedes Passwort ein neuer Salt generiert wird und zusammen mit dem Passwort (getrennt durch : ) in der DB gespeichert wird.

    Dabei wird der Salt so generiert:
    PHP-Code:
    $strSalt substr(md5(uniqid(mt_rand(), true)), 023);
    $strPassword sha1($strSalt $this->Input->post('password'));
    $this->password $strPassword ':' $strSalt
    Und genau so kannst du es ja dann auch wieder validieren. Nur generierst du dann keinen neuen Salt, sondern nimmst den Salt hinter dem Passwort aus der DB.

  6. #6
    Contao-Nutzer
    Registriert seit
    03.11.2009.
    Beiträge
    60

    Standard

    Wo hab ich mein Kopf... Angenommen $extpass wäre das in der DB hinterlege PW:

    PHP-Code:
            $blub explode(":"$extpass);
            
    $strSalt $blub[1];    
            
    $strPassword sha1($strSalt $password);
            
    $pwd $strPassword ':' $strSalt

  7. #7
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Wenn in der Variablen $password das Passwort im Klartext steht, stimmt es so!

  8. #8
    Contao-Nutzer
    Registriert seit
    20.06.2009.
    Ort
    Rheinbach
    Beiträge
    86

    Standard

    Hallo,

    ich habe auch eine solche Funktion, nur bei mir werden Kennwörter mit Umlauten nicht richtig übernommen.

    Habt Ihr eine Idee woran das liegen kann?

    Danke für Eure Antworten

  9. #9
    Contao-Nutzer
    Registriert seit
    22.06.2009.
    Ort
    Berlin
    Beiträge
    44

    Standard

    sorry
    aber diese antwort hatte mir hier noch gefählt
    PHP-Code:
    $blnAuthenticated = (crypt(\Input::post('password'true), $this->password) == $this->password); 

  10. #10
    Contao-Nutzer Avatar von Tastaturberuf
    Registriert seit
    14.03.2011.
    Ort
    Berlin
    Beiträge
    197
    User beschenken
    Wunschliste

    Standard

    Weil das bei Google ganz oben auftaucht unter "Contao Passwort generieren" hier die richtige Lösung unter Contao 3:

    PHP-Code:
    Encryption::hash($password

  11. #11
    Contao-Nutzer Avatar von TLight
    Registriert seit
    30.06.2009.
    Ort
    bei München
    Beiträge
    168

    Standard

    Gibt es auch eine Möglichkeit mit einem externen PHP-Programm die Passwörter nach neuer Konvention zu generieren? Ich habe immer wieder über 1.000 Mitglieder-Daten in eine Contao-3-Installation zu importieren. Mit der Erweiterung [import_from_csv] geht das leider nur sehr zeitaufwendig und in Teilschritten, da im Gesamten eine Laufzeitüberschreitung folgt. Also CSV zerhacken, Überschriften einfügen, viel klicken etc.

    Ich habe mir schon ein kleines Programm zum Generieren der verschlüsselten Passwörter nach der alten Methode (siehe oben) geschrieben. Das funktioniert ganz gut und die Passwörter wandeln sich nach dem ersten Login in die der neuen Konvention um. Nun benötige ich sie aber gleich beim Import in der neuen Konvention.

    Kann mir hier jemand helfen?

  12. #12
    Contao-Urgestein Avatar von fiedsch
    Registriert seit
    09.07.2009.
    Ort
    München
    Beiträge
    2.935

    Standard

    Du könntest in deinem externen PHP-Programm Contaos Klasse Encryption einbinden und dann mit Encryption::hash($plaintextpassword) arbeiten (siehe #10).
    Contao-Community-Treff Bayern: http://www.contao-bayern.de

  13. #13
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.466
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Contao nutzt intern die PHP Passwort API (wenn vorhanden) die seit PHP 5.5 im Core ist.
    Und da niemand mehr PHP < 5.6 einsetzen dürfte (weil unmaintained und somit ein No-Go), kannst du das also voraussetzen und dein Passwort einfach so hashen:

    PHP-Code:
    $hashedPassword password_hash($rawPasswordPASSWORD_DEFAULT); 
    Hat den netten Nebeneffekt, dass du automatisch den stärksten Hash-Algorithmus verwendest, der in PHP zur Verfügung steht.
    Ab PHP 7.2 dürfte das (definitiv ist es noch nicht so viel ich weiss) Argon2 sein, dann kannst du bei deinen Kunden damit prahlen, dass die Passwörter mit einem der stärksten Algorithmen der Welt gehasht werden (https://en.wikipedia.org/wiki/Argon2)

    BTW: Ich muss es loswerden, sorry Passwörter "verschlüsselt" man nicht. "Verschlüsseln" tut man Dinge, die man auch wieder "entschlüsseln" kann. Bei Passwörtern betreibt man one-way Hashing und das Ziel ist, dass man es eben NICHT entschlüsseln kann
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Grafik für Infoblase selbst bestimmen
    Von servpoint im Forum dlh_googlemaps
    Antworten: 1
    Letzter Beitrag: 27.11.2010, 17:49
  2. kein XHTML konformes IMG Tag in TL? (Doch, mein Fehler)
    Von BugBuster im Forum Layout / Templates / Holy Grail
    Antworten: 3
    Letzter Beitrag: 09.02.2010, 11:58
  3. Oh weh der Kunde pflegt selbst
    Von matze im Forum Off Topic
    Antworten: 3
    Letzter Beitrag: 25.01.2010, 22:04
  4. Modul selbst erstellen.
    Von TypoTogi im Forum Entwickler-Fragen
    Antworten: 3
    Letzter Beitrag: 30.06.2009, 19:06

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •