Ich bau mir nen Rechen-Captcha

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

  • Ich bau mir nen Rechen-Captcha

    Hallo Gemeinde!

    Und zwar habe ich eine Frage. Mein Usersystem ist fast fertig es fehlt nur noch die Sache falls ein Passwort vergessen wurde. Ich will erreichen das ein neues PAsswort erstellt wird und per e-mail an den User verschickt wird. Dieses soll aus Buchstaben und Zahlen bestehen und maximal 8 Zeichen besitzen!

    Jetzt meine Frage welche Funktionen brauche ich da um solch ein Password zu erstellen?

    Vielen Dank für eure Hilfe mfg der 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.
    http://www.lit-web.de

  • #2
    ganz elementar ist natürlich rand().

    Aber warum benutzt du nicht einfach eine Suche deiner Wahl und benutzt eine von hunderten vorgefertigten Passwort-Generatoren?

    Kommentar


    • #3
      Habe mich über rand() im Manual schon belesen aber es nicht richtig verstanden. Wiel da alles nur mit Zahlen beschrieben ist,ich will aber den Mix aus Zahlen und Buchstaben!

      Weil ich das gern selber schreiben möchte und dabei lernen will deshalb benutze ich kein fertigen Genrator!
      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.
      http://www.lit-web.de

      Kommentar


      • #4
        Oder array_merge() +range() + shuffle() + array_slice() und implode()
        z.B.
        PHP-Code:
        $chars array_merge(range(0,9),range('A','Z'),range('a','z'));
        shuffle($chars);
        echo 
        implode('',array_slice($chars,0,8)); 
        Zuletzt geändert von jahlives; 19.05.2008, 10:57.
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Weil ich das gern selber schreiben möchte und dabei lernen will deshalb benutze ich kein fertigen Genrator!
          OffTopic:
          Naja, wenns mit Rand schon nicht klappt, dann glaube ich dass du es nur mit den Funktionen die Jahlives dir gegeben hat, auch nicht geklappt hätte. Letztendlich hast du jetzt doch nen ferigen Code. Naja.

          Kommentar


          • #6
            Du kannst auch zB irgendeinen MD5 hash hernehmen und davon einen Teil verwenden zB md5(time())
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              oder du verwendest array_rand

              Kommentar


              • #8
                Original geschrieben von MelloPie
                Du kannst auch zB irgendeinen MD5 hash hernehmen und davon einen Teil verwenden zB md5(time())
                Da würde ich lieber auf eine der anderen Methoden zurückgreifen. md5() erstellt einen Hash aus dem Zeichenpool [0-9a-f] und bietet damit eine deutlich geringere Anzahl an möglichen unterschiedlichen Zeichenkombinationen als eine Funktion, die das gesamte Alphabet einbezieht. Damit sollte eine Bruteforce Attacke theoretisch schneller greifen können.

                Grüße
                Zuletzt geändert von Griecherus; 19.05.2008, 12:26.
                Nieder mit der Camel Case-Konvention

                Kommentar


                • #9
                  Danke für eure Antworten!

                  Von Tobiaz

                  Naja, wenns mit Rand schon nicht klappt, dann glaube ich dass du es nur mit den Funktionen die Jahlives dir gegeben hat, auch nicht geklappt hätte. Letztendlich hast du jetzt doch nen ferigen Code. Naja.
                  Ich habe auch nur nach möglichen Funktionen gefragt. Das jemand einen fertigen benutzbaren Code hier erstellt konnte ich nicht wissen und war auch nicht mein Ziel.

                  Aber trotzdem dake!

                  Natürlich werde ich die Funktionen im Manual nachschlagen und mich darüber belesen,ich kopiere mir keinen Code ohne mir Gedanken zu machen darüer und zu verstehen!

                  mfg der 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.
                  http://www.lit-web.de

                  Kommentar


                  • #10
                    Original geschrieben von Griecherus
                    Da würde ich lieber auf eine der anderen Methoden zurückgreifen. md5() erstellt einen Hash aus dem Zeichenpool [0-9a-f] und bietet damit eine deutlich geringere Anzahl an möglichen unterschiedlichen Zeichenkombinationen als eine Funktion, die das gesamte Alphabet einbezieht. Damit sollte eine Bruteforce Attacke theoretisch schneller greifen können.

                    Grüße
                    Da gebe ich Dir recht, ich würde das auch nicht verwenden sondern eher den vollen Umfang von characters, war auch nur ein schnellschuss, um ein relativ kryptisches passwort zu generieren. Da das rand() schon nicht verstanden wurde erschien mir daqs als praktische Lösung ....
                    Beantworte nie Threads mit mehr als 15 followups...
                    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                    Kommentar


                    • #11
                      Ich habe mir die funktionen angesehen und auch verstanden was die bedeuten und machen!

                      Eine Frage kann man diese Sachen nicht auch dazu nutzen ein Captcha Schutz zum Beispiel in Form einer Rechen aufgabe zu machen?

                      Das Ergebnis dieser Aufgabe in ein hidden Feld schreiben und die eigentliche Aufgabe naben einem Textfeld anzeigen. Das Ergebnis muss dann in das Textfeld eingetragen werden und nur bei Übereinstimmung des Ergebnisses im hidden Feld und Textfeld wird ein Formular abgeschickt?

                      mfg der 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.
                      http://www.lit-web.de

                      Kommentar


                      • #12
                        Sicher geht das. Du hast das ja sicherlich auch schon auf der einen oder anderen Seite gesehen.
                        Ich rate dir allerdings dringlichst davon ab, das Ergebnis in ein Hidden-Field zu schreiben. Ein Bot muss sich dann nichtmal mehr die Mühe machen, dein Captcha zu "erkennen", sondern schnappt sich einfach den Wert aus dem Input. Den Wert in einer Session abzuelgen macht viel mehr Sinn.

                        Grüße
                        Nieder mit der Camel Case-Konvention

                        Kommentar


                        • #13
                          Das Ergebnis dieser Aufgabe in ein hidden Feld schreiben und die eigentliche Aufgabe naben einem Textfeld anzeigen. Das Ergebnis muss dann in das Textfeld eingetragen werden und nur bei Übereinstimmung des Ergebnisses im hidden Feld und Textfeld wird ein Formular abgeschickt?
                          Dazu haben wir eigentlich einen Recht ausführlichen Thread hier irgendwo.

                          Aber hier die Zusammenfassung: NEIN, weil ein Bot natürlich ohne Probleme das hiddenfield auslesen kann. Außerdem füllen Bots oftmals gar keine Formulare aus, sondern schicken nur den entsprechenden Request.

                          Kommentar


                          • #14
                            Aus Sicht eines Bots ist das keine Hürde. Er muss nur den Value des hidden Inputs in das Textfeld kopieren.

                            Üblicherweise wird das Ergebnis in der Session mitgeführt, nicht auf der Seite selbst.

                            Kommentar


                            • #15
                              OffTopic:
                              Heute bin ich wohl etwas schneller gewesen.
                              Nieder mit der Camel Case-Konvention

                              Kommentar

                              Lädt...
                              X