md5 verschlüsselung

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      md5 verschlüsselung

      Guten Abend,

      ich hab den GTChat 0.95 so umgebaut, das die Userdaten in einer MYSql Datenbank gespeichert werden. Das ging Problemlos und funktioniert soweit ganz gut. Dann hab ich gelesen, das es möglich ist die Passwörter im MD5-Format zu speichern. Gesagt, getan. Ich hab darauf Digist::MD5 auf dem Server installiert und die Register.pm so umgeschrieben. Das klappt auch soweit. Jetzt kommt aber das Problem: Ich kann mich dadurch nicht mehr in den Chat einloggen da das Passwort per checkpassword() überprüft wird und der GTChat die Passwörter normalerweiße mit Crypt() verschlüsselt. Nun häng ich an der Stelle. Hab schon viel rumprobiert aber bisher ist es mir nicht gelungen die login.pm anzupassen. Es kommt also immer, das dass Passwort nicht korrekt ist. Wenn ihr euch fragt warum ich solche Experimente mache: Ich versuch mit an nem Userabgleich vom PHPkit auf den GTChat und da ist für mich die einfachste Lösung die Chatdaten aus der Datenbank einzulesen und zudem die User aus dem Kit direkt dort einzutragen. Die Kit-Passwörter sind aber im MD5-Format gespeichert. Ich hab bisher auch keine Erfahrungen mit Perl deswegen ist das eher ein "Blindflug". Hat einer ne Idee wie man die login.pm anpassen muss? Oder gibt es ein Perl Plugin was die MD5-Daten auslesen kann?

      Liebe Grüße,

      Nickel
      das hab ich schon versucht. also:

      $main->fatal_error('wrongpassword') if ($user{password} ne $main->$md5_hex($password,$user{password}));

      aber das ändert nichts daran. wahrscheinlich geht die digist::md5 methode nur in die eine richtung. das decodieren scheint nicht zu funzen.

      EDIT:

      Bzw. schimpft er:

      Unbekannte Chat-Methode md5_hex aufgerufen, möglicherweise ist ein Plugin fehlerhaft oder für eine andere Chat-Version bestimmt.

      obwohl ja das digist::md5 auf dem Server installiert ist. Das bedeutet also, das ich ein extra Plugin für den GTChat schreiben müsste?

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nickel“ ()

      $main->$md5_hex ??

      Falsch, du musst die selbe Funktion nutzen wie beim registrieren es gibt sowieso kein Decodieren :D

      Weiß leider nicht wie du funktion heißt aber in etwa so:
      md5_hex(...);

      Und natürlich musst du in der login.pm auch use Digist::MD5 machen.
      ja, decodieren war falsch, sorry .. :D

      der befehl heißt md5_hex() und das digist::md5 hab ich per

      use Digest::MD5 qw(md5_hex);

      in die login.pm unter use strict eingefügt (laut doku & google :D)

      wenn ich dann aus dem

      crypt($password,$user{password})

      ein

      md5_hex($password,$user{password})

      mache kommt der o.g. fehler.
      echt komisch ...
      wie schon geschrieben funzt die registrierung problemlos.
      kann es daran liegen, das $user{password} eh schon die md5 varriante ist?

      Quellcode

      1. if ($user{name} ne "" && $user{nick} eq "")
      2. {
      3. $user{nick}=$user{name};
      4. }
      5. elsif ($user{nick} ne "" && $user{name} eq "" && !$main->{settings}{default}{is_username})
      6. {
      7. srand;
      8. for (my $i=0;$i<100;$i++)
      9. {
      10. $user{name}=md5_hex($main->{settings}{pwseed});
      11. last if (!$main->existsUser($user{name}));
      12. }
      13. }
      14. if ($environment{has_uncrypted_password})
      15. {
      16. $user{password} = md5_hex($user{password});
      17. }
      18. else
      19. {
      20. $user{password} =~ s/^\s*(.*?)\s*$/$1/;
      21. $user{password2} =~ s/^\s*(.*?)\s*$/$1/;
      22. $main->fatal_error('passwordsnotequal') if ($user{password} ne $user{password2});
      23. $main->fatal_error('nopasswordgiven') if ($user{password} eq "");
      24. $user{password} = md5_hex($user{password});
      25. }
      Hallo Nickel,

      bitte entscheide Dich für ein Supportforum wo du die jeweilige Anfrage stellst.

      Crossposting wird nicht gern gesehen.
      if (ahnung == 0) {read FAQ; use SEARCH; ask GOOGLE; } else { use brain; make post; } or { give up }
      ----------------------------
      Die deutsche Rechtschreibung ist Freeware, sprich, du kannst sie kostenlos nutzen. Allerdings ist sie nicht Open Source, d.h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen!