Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MD5 Verschlüsselung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] MD5 Verschlüsselung

    Hallo Leute,

    ich habe gerade ein kleines Problem und sitze auf dem Schlauch. Ich erkläre mal kurz was ich nicht hinbekomme.

    Also ich habe ein Password in meiner Datenbank stehen mit md5 like 6cf7d17779355772604bbe006585d87b ich möchte das nun über einen PHP auslesen lassen aber unverschlüsselt, Zwecks Password Abfrage. Das heisst, wenn der Benutzer sein Passwort abfragt, dass er es unverschlüsselt bekommt

    Hier mal mein Code aber das klappt iergendwie nicht:

    PHP-Code:
    <?php $query mysql_fetch_array (mysql_query("SELECT * FROM mytabel WHERE email='".$email."'"));

    $user_name           $query['name'];
    $user_mail             $query['mail'];
    $user_password      md5 ($query['pass']);

    $empfaenger            $_POST['email'];
    $nachricht             "Hallo $user_nickname

    Hier deine Angeforderten Daten:

    ------------------------------------------------------
    Dein Nickname: 
    $user_name 
    Dein Passwort: 
    $user_password  
    Deine E-Mail:  
    $user_mail 
    ------------------------------------------------------

  • #2
    - MD5 ist keine Verschlüsselung
    - MD5 ist unsicher
    - MD5 lässt sich nicht zurückrechnen.
    (Bruteforce, Rainbowtables, ... o.ä. ist ein anderes Thema)
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      Hallo,

      Danke für die schnelle Antwort, was kann man dann als Alternative nehmen?

      mf.G

      Kommentar


      • #4
        Sicheres Password Hashing

        LG
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          MD5 ist keine Verschlüsselung, sondern ein Hash ( Hashes sind Einbahnstraßen ).
          MD5 gilt als unsicher.

          http://php.net/manual/de/function.password-hash.php

          Du solltest davon absehen wiederherstellbare Passwortverschlüsselungen zu nutzen. Passwörter sollten in der Datenbank als salted Hash gespeichert werden ( SHA256 / SHA 512 / BCRYPTed ) und auch nur gegen Hashes verglichen werden. Will ein User sein Passwort abfragen, erzeugst du ein neues und gibst ihm entsprechend 1-2 Stunden Zeit sich (nur) mit diesem Passwort einzuloggen.
          [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

          Kommentar


          • #6
            Super,

            danke für die schnelle Hilfe. Ich versuche das mal, lese mich da mal durch.

            l.G

            Kommentar


            • #7
              Nachtrag:

              - mysql_ Erweiterung ist veraltet, wird bald nicht mehr funktionieren
              http://php.net/manual/en/migration55.deprecated.php Stichwort PDO oder mysqli

              - und .. Überdenke deinen Status.. das hier ist alles ist definitv nicht Fortgeschritten
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar


              • #8
                Steht doch bei Einsteiger? Oder habe ich jetzt was Falsch gepostet ? :/

                Kommentar


                • #9
                  Irgendwie in sechs Zeilen Code so ziemlich alles falsch gemacht, was man auch nur falsch machen kann.

                  SQL-Injection.

                  Die Verwendung von "*" in SQL-Abfragen wird im Allgemeinen als schlechter Stil angesehen. "*" kann entweder alle Felder aus einer Tabelle, oder (wenn mehrere Tabellen mit einbezogen werden) aus allen Tabellen ziehen.

                  Zwei Gründe sprechen dagegen: Wenn du dein Tabellenschema anpasst, wird die Abfrage weiterhin funktionieren. Die Abfrage wird in deinem Code aber Variablen (bzw. Array-Keys) erzeugen, die von deinem Programm so nicht erwartet werden. Das kann (je nachdem, wie deine Applikation aufgebaut ist) zu schwer nachvollziehbaren Problemen führen. Würdest du die Spaltennamen direkt in deiner SQL-Abfrage angeben, würde die SQL-Abfrage direkt lautstark fehlschlagen. Dann kannst du möglicherweise einen Alias für umbenannte Tabellenspalten angeben, ohne dass du deinen Applikationscode anpassen musst.

                  Außerdem kann man durch eine explizite Angabe die Reihenfolge und die Anzahl der Tabellenspalten begrenzen. Die Reihenfolge kann je nach Applikation eine Rollen spielen und je weniger Felder man einbezieht, desto schneller wird das Ergebnis zum abfragenden Client übertragen.

                  Kommentar


                  • #10
                    Okay,

                    nehme ich mir zu Herzen, bin schon etwas eingerosted damit. Hab leider mich nicht mehr weitergebildet Aber vielen Dank für die Infos, werde gleich mal alles durchlesen.

                    Kommentar


                    • #11
                      Zitat von Prodesign Beitrag anzeigen
                      Steht doch bei Einsteiger? Oder habe ich jetzt was Falsch gepostet ? :/
                      Prodesign
                      Neuer Benutzer

                      Registriert seit: 20.09.2014
                      Beiträge: 4
                      PHP-Kenntnisse:
                      Fortgeschritten
                      Dazu noch:

                      SQL-Injection
                      http://php-de.github.io/jumpto/sql-injection/ bzw. auch PDO / mysqli und Stichwort Prepared Statements..

                      Und:

                      PHP-Code:
                      SELECT FROM mytabel 
                      http://php-de.github.io/jumpto/code-smells/#select-

                      LG
                      The string "()()" is not palindrom but the String "())(" is.

                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar

                      Lädt...
                      X