Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Dynamische Salt Hashes auswerten

Einklappen

Neue Werbung 2019

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

  • #16
    Ich mache einen gemischten Has aus md5 und sha1.
    Ist auch nicht sicherer, wenn Du ein gescheites Salt verwendest.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #17
      Ja nehm entweder sha oder md5, aber nicht beides!

      Siehe auch den aktuellen Thread: http://www.php.de/php-einsteiger/705...-sicherer.html

      Kommentar


      • #18
        Hallo an alle Helfer

        So ich habe das nun mal versucht umzusetzen mit Testdaten.

        Hier mal mein Logversuch.

        PHP-Code:
        if(isset($_POST['log'])){
         
         
        $sql ="
           SELECT
            Count(*) As countUser,
            id,
            username,
            pwd,
            salt
           FROM
            `salted`
           WHERE
            username ='"
        .mysql_real_escape_string($_POST['un'])."'
           AND
            "
        .md5("CONCAT(salt,".$_POST['pwd'].")")." = pwd
           "
        ;
         
         
        $query mysql_query($sql) or die('Query ging nicht '.mysql_error());
         
         
        $fetch mysql_fetch_assoc($query);
         
         if(
        $fetch['countUser'] > 0){
          
          
        $_SESSION['idu'] = $fetch['id'];
         }

        Die Testdaten sind Username und Passwort lisa.

        Dazu lasse ich mir vor aus dem gespeicherten Salt und dem Wort lisa eine echo Ausgabe machen.

        PHP-Code:
        echo md5('M}W+?78jwnöä9617QÜlisa'); 
        So wenn ich nun in der Tabelle vergleiche ist es genau der richtige Hash.

        Nun versuche ich mich mit den Testdaten lisa und lisa einzuloggen und bekomme eine solche Fehlermeldung.

        Code:
        Query ging nicht Unknown column '0f00790d4c7c645e8314b2bd26ab7b09' in 'where clause'
        So was die bedeuted ist mir klar, unklar und nicht verständlich ist mir warum diese entsteht. Denn ich gebe die Daten richtig ein.

        Ich bin dankbar für jede Hilfe.

        Gruß Litter
        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
        [URL]http://www.lit-web.de[/URL]

        Kommentar


        • #19
          Dann lass mal dein SQL-Query ausgeben.
          Signatur:
          PHP-Code:
          $s '0048656c6c6f20576f726c64';
          while(
          $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

          Kommentar


          • #20
            Werde ich mal machen
            Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
            [URL]http://www.lit-web.de[/URL]

            Kommentar


            • #21
              CONCAT ist eine MySQL Funktion, du wendest aber md5 auf CONCAT(salt, ...) an ... heißt ERST wird davon der Hash gebildet und DANN wird es an MySQL geschickt. Da dann natürlich CONCAT nicht mehr da ist wird das auch von MySQL nicht ausgeführt ...

              Solltest du mit deinen 2500 Posts aber langsam wissen das ERST die PHP Funktion ausgeführt wird und dann der gesamte Query an MySQL geschickt wird.

              Kommentar


              • #22
                Das ist mir durchaus bewusst, dass heist erst das CONCAT und dann da drin die PHP Funktione. Probiere ich gleich mal aus.
                Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                [URL]http://www.lit-web.de[/URL]

                Kommentar


                • #23
                  Zitat von litterauspirna Beitrag anzeigen
                  PHP-Code:
                     ".md5("CONCAT(salt,".$_POST['pwd'].")")." pwd
                     
                  "; 
                  genau falsch rum -> pwd = hash
                  "My software never has bugs, it just develops random features."
                  "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                  Kommentar


                  • #24
                    Ich habe das nun so abgeändert.

                    Code:
                       AND
                        pwd = CONCAT(".md5('salt', $_POST['pwd']).")
                    Udn bekomme nun bei einem Mysql Fehler wo ich mir den ausgeben lasse folgenden Ausgabe.

                    [code]
                    SELECT
                    Count(*) As countUser,
                    id,
                    username,
                    pwd,
                    salt
                    FROM
                    `salted`
                    WHERE
                    username ='lisa'
                    AND
                    CONCAT(βr
                    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                    [URL]http://www.lit-web.de[/URL]

                    Kommentar


                    • #25
                      Nein du mussst erst den Salt in der Datenbank mit dem Passwort aus der eingabe verknüpfen und DANN md5 anwenden. Von daher verwende die MySQL MD5 Funktion denn diese wird dann auch erst in MySQL aufgerufen und zwar nach CONCAT.

                      PHP-Code:
                       $sql ="
                         SELECT
                          Count(*) As countUser,
                          id,
                          username,
                          pwd,
                          salt
                         FROM
                          `salted`
                         WHERE
                          username ='"
                      .mysql_real_escape_string($_POST['un'])."'
                         AND
                          pwd = MD5(CONCAT(salt,"
                      .$_POST['pwd']."))
                         "

                      Oder wenn du den Salt erst ausgelesen hast und dann in einer PHP Variable hast kannst du natürlich auch:

                      PHP-Code:
                       $sql ="
                         SELECT
                          Count(*) As countUser,
                          id,
                          username,
                          pwd,
                          salt
                         FROM
                          `salted`
                         WHERE
                          username ='"
                      .mysql_real_escape_string($_POST['un'])."'
                         AND
                          pwd = \""
                      .md5($salt.$_POST['pwd'])."\"
                         "

                      Kommentar


                      • #26
                        Code:
                        pwd = MD5(CONCAT(salt,".$_POST['pwd']."))
                        Code:
                        pwd = MD5(CONCAT(salt,'".$_POST['pwd']."'))
                        Signatur:
                        PHP-Code:
                        $s '0048656c6c6f20576f726c64';
                        while(
                        $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

                        Kommentar


                        • #27
                          Danke Jungens das klappt nun, ich wusste bis jetzt gar nicht das Mysql auch eine MD5 Funktion hat, darum habe ich das die ganze Zeit auf PHP Basis versucht.

                          Der Code der funktioniert für die Nachwelt.

                          PHP-Code:
                          $sql ="
                             SELECT
                              Count(*) As countUser,
                              id,
                              username,
                              pwd,
                              salt
                             FROM
                              `salted`
                             WHERE
                              username ='"
                          .mysql_real_escape_string($_POST['un'])."'
                             AND
                              pwd = MD5(CONCAT(salt,'"
                          .$_POST['pwd']."'))
                             "
                          ;
                           
                           
                          $query mysql_query($sql); 
                          Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                          [URL]http://www.lit-web.de[/URL]

                          Kommentar


                          • #28
                            Danke Jungens das klappt nun, ich wusste bis jetzt gar nicht das Mysql auch eine MD5 Funktion hat, darum habe ich das die ganze Zeit auf PHP Basis versucht.
                            30s Zeit + Google und du hättest rausgefunden dass mysql sowas kann.
                            http://lmgtfy.com/?q=mysql+md5
                            Signatur:
                            PHP-Code:
                            $s '0048656c6c6f20576f726c64';
                            while(
                            $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

                            Kommentar


                            • #29
                              Zitat von ByStones Beitrag anzeigen
                              30s Zeit + Google und du hättest rausgefunden dass mysql sowas kann.
                              Let me google that for you
                              Wenn ich in Betracht gezogen hätte das Mysql so etwas kann, dann hätte ich Google auch benutzt. Es lässt sich schlecht suchen, wenn man nichts davon weis. Und ich bin oft im Mysql Manual zu gange und habe da noch nichts von gelesen.
                              Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                              [URL]http://www.lit-web.de[/URL]

                              Kommentar


                              • #30
                                Alternativ lies die Fehlermeldung mal genau...

                                Code:
                                Query ging nicht Unknown column '0f00790d4c7c645e8314b2bd26ab7b09' in 'where clause'
                                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                                Kommentar

                                Lädt...
                                X