Alle Passwörter aus einer Tabelle entcrypten (MD5)

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey,
    ich habe mir überlegt auf meinem Server von MD5 zu Whirlpool zum Hashen von Passwörtern zu wechseln. Jetzt habe ich nur ein Problem, alle Passwörter in der Datenbank sind derzeit noch im MD5 Format und ich müsste sie erstmal wieder zurück zur "Normalform" bringen, bevor ich sie dann wieder mit Whirpool hashe. Nur mit welchem MySQL Befehlt kann ich das direkt in PHPMyAdmin erledigen ? Sonst hätte ich nur die Idee scriptseitig durch alle Passwörter zu loopen und sie wieder umzuwandeln. Und ich habe da noch eine Frage. Gibt es einen MySQL Befehl mit dem ich ein Feld mit Whirpool hashen kann oder müsste ich das vom Script aus erledigen? Denn die ganzen User zurücksetzen möchte ich eigentlich nicht.
    Würde mich über Hilfe freuen :)

  • Du kannst doch in dein Script einbauen, dass die User beim Connecten ein neues Passwort eingeben müssen.
    Dann Updatest du die Tabelle und fertig.


    Soweit ich weiß gibt es keinen MySQL Befehl für Whirpool

    Sowas probiere ich halt zu umgehen, da viele es sicher nicht kapieren würden wieso sie ein neues Passwort eingeben müssen und dann wahrscheinlich einige denken ees wäre ein Bug oder ähnliches.

    • Offizieller Beitrag

    MD5 ist immernoch keine Verschlüsselung, es ist ein Hash (kann man auch als Prüfsumme sehen, welche aus den eingegebenen Daten berechnet wird). Diesen kannst du nicht einfach so wieder in Klartext setzen, einzigste Möglichkeit wäre Brute-Forcen


    Machs so wie T4125Gamer: gesagt hat, das sollte die einfachste Möglichkeit sein


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • Machs doch so:
    Du machst einen neuen Eintrag in der mysql Tabelle für ein neues Passwort.
    Dann im Script das es so abläuft: Sie loggen sich normal ein, du speicherst das passwort neu ab in der normalen Form. Problem gelöst soweit. Dann löscht du das Passwort in Md5 form.
    Dann fragst du ab ob ein passwort (md5) vorhanden ist wenn nicht das andere.


    Hoffe ich hab mich verständlich ausgedrückt.. ( artikulationsprobleme maybe .. )

  • Beitrag von IPrototypeI ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Ich habe mir mal was kleines gebastelt aber es funktioniert noch nicht ganz.
    CMD:convertpasswords(playerid, params[])
    {
    if(!isAdmin(playerid, 5)) return 0;
    mysql_function_query(dbhandle,"SELECT MD5(`password`),`id` FROM `user`",true,"ConvertPasswords","","");
    return 1;
    }
    public ConvertPasswords()
    {
    new rows,fields;
    cache_get_data(rows, fields);
    new pass[35],passID;
    for(new i = 0; i != rows; i++)
    {
    cache_get_field_content(i,"password",pass,dbhandle,35);
    passID = cache_get_field_content_int(i,"id",dbhandle);
    }
    return 1;
    }
    Es zeigt statt dem eigentlichen Passwort "NULL". Was mache ich falsch ?

  • Du kannst MD5 nicht mehr einfach in Klartext wandeln, das ist ja der Sinn des ganzen...


    mach eine neue Spalte mit default Null namens PW Version.


    Versucht sich nun ein Spiler einzuloggen schaust du ob PW Version auf 0 ist wenn ja überprüfst du das Angegebene Passwort als MD5 wenn nein als Whirlpool. Ist der Wert 0 und das PW ist Korrekt setzt du PW Version auf 1 und das Klartext PW wird mit Whirlpool verschlüsselt und in die mysql tabelle geupdated.


    Wichtig ist nur, dass du beim registieren direkt Whirlpool nutzt und PW Version auf 1 setzt.

  • Oder du hascht alle alten pws nochmal mit WP and alle neuen erst mit MD5 und dann WP. Sollte man aber eigentlich nicht tun.

    Ist es dann noch möglich sie zu enthashen ? Und wie genau soll ich das dann machen, wenn ich MD5 nur in einer Query verwenden kann, oder geht das noch anders ?