Passwörter angleichen

  • Hallo,


    ich habe von verschiedenen Joomla Versionen Passwörter mit verscheidenen Verschlüsselungen in der Datenbank:

    z.B.

    5e8d80e0dc758578b0edebeef6d67da0

    7b10d7b9b2b27435edf59ba9d0a900e4:kJ6NTpUKQTRwraes6zBychOv1kNPHTAL

    $2y$10$8boM/RFsHKYE/ckPrlKXH.zr8hCUbi2GYmq5snsNNUnaFR9VicSyi


    Da ich die Passwörter gerne in einer externen Anwendung (nicht im Joomla Framework) prüfen möchte (in PHP programmiertes Kundenportal, in das sich die User mit den selben Zugangsdaten einloggen können sollen), wäre es doch sicher von Vorteil, diese auf eine Verschlüsselungsart zu bekommen.

    Wenn ja, wie geht das?

    Oder gibt es eine Möglichkeit, die Richtigkeit des Passwortes unabhängig von der Verschlüsselungsart zu testen?


    Danke,

    Tom

  • Das "Umhashen" ist nicht unbedingt das Problem, aber du brauchst das Klartext-Passwort.

    Und, da das No-Go ist... (außer bei manchem uralten System (oder manchmal Facebook ;) ), wo tatsächlich noch Klartext-PWörter in der Datenbank stehen, bist eh raus.


    In joomla 3 ist es üblich, dass beim Anmelden und Prüfen des eingegebenen Passwortes in der Datenbank ein neuer Hash eingetragen wird, wenn der Hash-Algorithmus, der aus dem vorhandenen Hash, z.B. am Prefix "$2", ermittelt wird, nicht mindestens BCRYPT ist.


    Siehe https://github.com/joomla/joom…/UserHelper.php#L319-L410


    und https://github.com/joomla/joom…/UserHelper.php#L300-L317


    sowie https://www.php.net/manual/en/function.password-hash.php


    Grundlegend brauchst nur die 2. Joomla-Function, aber eben mit Klartext-Passwort. Und dann ein $user->save() wie in der 1. zu sehen.


    Weiters muss man beachten, was der Server an $passwordAlgorithm überhaupt unterstützt. Ob die passenden Bibliotheken installiert sind. Auch abhängig von der PHP-Version.

    Oder gibt es eine Möglichkeit, die Richtigkeit des Passwortes unabhängig von der Verschlüsselungsart zu testen?

    Siehe 1. Function als Vorlage. $match ist die Variable, die am Ende zurück gegeben wird.

    Man sollte aber immer beachten, dass "es immer wieder was besseres geben wird" und Joomal ggf. "umhasht" in seiner Datenbank. Weiß nicht, wie der Stand bei Joomla 4 ist...

  • Sind denn manche User mit irgend einer Art von Zweifaktor-Authentifizierung (z.B. YubiKey oder Fido2)

    registriert?

    Oder soll später einmal die Zweifaktor-Authentifizierung (z.B. YubiKey oder Fido2) ermöglicht werden ?

    Ist die externen Anwendung über die selbe Webdomain zugänglich ?

    Wie willst du die Datenkonsistenz gewährleisten z.B. jemand nutzt die "Passwort vergessen"-Funktion ?

    Oder ist es egal wenn in Joomla und der externen Anwendung dann unterschiedliche Passwörter existieren ?

  • Außerdem siehe auch ab:

    https://github.com/joomla/joom…/User/UserHelper.php#L332


    und z.B. auch:

    https://github.com/joomla/joom…ass/PasswordHash.php#L213


    Eventuell auch nützlich:

    http://web.archive.org/web/201…ll-importiert-werden.html


    Ich bin aber nur Laie und kenne mich damit im Grunde nicht wirklich aus.