Sven: Aktivierungs Key

Hallo,

ich schreibe gerade für meine Website ein Forum.
Und habe ein kleines problem bei der Anmeldung.

Wenn man sich neu anmeldet generiere ich ein Random Key der dann in der Tabelle mit gespeichert wird. Nach der Aktivierung wird auch der Key aus der Tabelle gelöscht das der frei wird für andere neue benutzer. Nachdem der Key generiert wurde, muss ich natürlich prüfen, ob der Key schon vorhanden ist. Habe es mit folgenden Code probiert:

function aktivate_key()
{
  $akey="";
  $akey= md5(microtime(9));
  $db_link = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
  if($db_link) {
  if(mysql_select_db(MYSQL_DATABASE, $db_link)) {
  $key_test = mysql_query("SELECT rKey FROM Regist WHERE rKey='".$akey."'");

While ($key_test) {
  $akey= md5(microtime(9));
  }

mysql_close($db_link);
  }
  }
 Return $akey;
}

Nur irgendwie will das nicht gehen. Die While-Schleife läuft immer durch, warum? Wie bekomme ich das zum laufen? Habe schon in mehreren IRC-Channels gefragt auf Websiten umgeschaut habe leider keine ahnung. Ich hoffe jemand kann mir helfen.

MFG
Sven!

  1. Guten Abend,

    function aktivate_key()
    {
      $akey="";
      $akey= md5(microtime(9));
      $db_link = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
      if($db_link) {
      if(mysql_select_db(MYSQL_DATABASE, $db_link)) {
      $key_test = mysql_query("SELECT rKey FROM Regist WHERE rKey='".$akey."'");

    While ($key_test) {
      $akey= md5(microtime(9));

    was möchtest du denn an dieser Stelle überhaupt machen wenn ich mal fragen darf?

    MfG
    Indigo

    1. Guten Abend,

      was möchtest du denn an dieser Stelle überhaupt machen wenn ich mal fragen darf?

      MfG
      Indigo

      Also $akey= md5(microtime(9)); generiert mir den Random Aktivierungs-Key. Dann stelle ich eine Verbindung zu der Mysql Datenbank und selectiere die Datenbank. $key_test = mysql_query("SELECT rKey FROM Regist WHERE rKey='".$akey."'"); Soweit ich weis muss das prüfen, ob der Generierte Key schon in der DB vorhanden ist. Er prüft das Feld rKey in der Tabelle Regist. Und die While-Schleife müsste nach meinem wissen immer wieder durchlaufen bis der generierte Key nicht vorhanden ist. Das problem ist das die While-Schleife immer wieder durchläuft, obwohl kein Eintrag in der Tabelle ist.

      1. Hi,

        Also $akey= md5(microtime(9)); generiert mir den Random Aktivierungs-Key. Dann stelle ich eine Verbindung zu der Mysql Datenbank und selectiere die Datenbank.

        nicht in dem Code, den Du uns nanntest.

        Soweit ich weis muss das prüfen, ob der Generierte Key schon in der DB vorhanden ist.

        Warum sorgst Du nicht schon vorher für Eindeutigkeit?

        Und die While-Schleife müsste nach meinem wissen immer wieder durchlaufen bis der generierte Key nicht vorhanden ist.

        Ja, allerdings prüfst Du nur das Ergebnis eines einzigen Selects ...

        Das problem ist das die While-Schleife immer wieder durchläuft, obwohl kein Eintrag in der Tabelle ist.

        ... und nicht mal dessen Inhalt.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          Also $akey= md5(microtime(9)); generiert mir den Random Aktivierungs-Key. Dann stelle ich eine Verbindung zu der Mysql Datenbank und selectiere die Datenbank.

          nicht in dem Code, den Du uns nanntest.

          Soweit ich weis muss das prüfen, ob der Generierte Key schon in der DB vorhanden ist.

          Warum sorgst Du nicht schon vorher für Eindeutigkeit?
          Ja, allerdings prüfst Du nur das Ergebnis eines einzigen Selects ...

          ... und nicht mal dessen Inhalt.

          Cheatah

          Hm... hat mir jetzt leider nicht weiter geholfen.
          Wenn man sich neu anmeldet, möchte ich eine Aktivierungs-Key generieren. Der soll so lange einen Key generieren, bis der generierte Key in der DB-Tabelle "Regist" nicht vorhanden ist. Wie mache ich das?

          1. Hi,

            Hm... hat mir jetzt leider nicht weiter geholfen.

            meine Antworten haben oft die Eigenschaft, nicht auf Anhieb verständlich zu sein. Wenn Du Dir die Mühe machst, sie zu verstehen - das impliziert gewöhnlich einige Recherchevorgänge - lernst Du aber mehr aus ihnen, als Du gehofft hättest.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
  2. Hi,

    warum prüfst du, ob der Key schon vorhanden ist?

    1. Die Wahrscheinlichkeit, dass ein Key doppelt vergeben wird, ist gering
    2. Häng an den Key doch einfach die aktuelle Zeit dran, dann ist die Wahrscheinlichkeit noch geringer
    3. Warum darf ein Key eigentlich nicht doppelt vorkommen? Der Nutzer muss ihn wahrscheinlich in einer Email aktivieren, aber was hat das mit den anderen Nutzern zu tun? Schicke doch einfach den Username im Key bzw. dem Aktivierungslink mit?

    Außerdem:

    While ($key_test) {
      $akey= md5(microtime(9));
      }

    Damit überschreibst du $akey ständig, es bleibt nur der letzte Wert erhalten. Außerdem ist das entweder eine Endlosschleife ($key_test != 0) oder eine überhaupt nicht aufgerufene Schleife ($key_test == 0)

    E7

    1. Hi,

      warum prüfst du, ob der Key schon vorhanden ist?

      1. Die Wahrscheinlichkeit, dass ein Key doppelt vergeben wird, ist gering
      2. Häng an den Key doch einfach die aktuelle Zeit dran, dann ist die Wahrscheinlichkeit noch geringer

      wenn die Wahrscheinlichkeit nicht _identisch_ mit 0 ist, ist sie unzumutbar hoch. Allerdings kann man sich die Angelegenheit mit einem Unique-Constraint und einer Fehlerbehandlung durchaus einfacher machen.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hallo,
        |wenn die Wahrscheinlichkeit nicht _identisch_ mit 0 ist, ist sie unzumutbar hoch.

        Hmm komisch ist wir gar nicht bekannt ^^

        PGP benutzt z.B. nur 99,99....%tige Primzahlen, denn man kann nur sehr sehr sehr schwer und Zeitaufwendig 100%tige Primzahlen in der größen Ordnung generieren.

        Alle Modernen Verschlüsselungsverfahren bieten auch nur eine 99,999...% tige Sicherheit, denn ein _beweisbar_ sicheres Verfahren ist heutzutage noch viel zu Aufwendig (One Time Pad).

        Aber 1,6 Bio Schlüsselraum sollte für einen Key, der einen User aktiviert, doch ausreichen?
        Wer würde darauf einen Brute Force Angriff starten, der außerdem viel zu lange dauern würde.

        Da Registiere ich mir lieber eine neue Adresse und aktiviere den Acc per Email.

        MFG
        Andavos

        1. Hi,

          PGP [...] Alle Modernen Verschlüsselungsverfahren [...]

          was haben Verschlüsselungsverfahren hiermit zu tun? Es geht darum, _Fehler auszuschließen_.

          ein _beweisbar_ sicheres Verfahren ist heutzutage noch viel zu Aufwendig (One Time Pad).

          Nein, ein beweisbar sicheres Verfahren ist beweisbar unmöglich. Es existiert keine "absolute Sicherheit".

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hi,

            Nein, ein beweisbar sicheres Verfahren ist beweisbar unmöglich. Es existiert keine "absolute Sicherheit".

            http://www.vbarchiv.net/archiv/tipp_details.php?pid=564

            Ich zitiere:

            Unter der Annahme, dass jedes Passwort-Zeichen echt zufällig gewählt wurde, das Passwort genauso lang ist wie der Klartext und das Passwort nur einmal verwendet wird, ist dieses Verfahren sogar nachgewiesenermaßen das einzig bekannte absolut sichere Verfahren.<<

            E7

            1. Hallo,

              Ich zitiere:

              Ich auch.

              Unter der Annahme, dass jedes Passwort-Zeichen echt zufällig gewählt wurde, das Passwort genauso lang ist wie der Klartext und das Passwort nur einmal verwendet wird, ist dieses Verfahren sogar nachgewiesenermaßen das einzig bekannte absolut sichere Verfahren.<<

              Das Problem ist, das Passwort echt zufällig zu wählen.
              Dazu darf man nämlich keinen Zufallsgenerator nehmen,
              sondern muss würfeln.

              Gruß
              Alexander Brock

              --
              SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
              http://againsttcpa.com
              1. Hallo,
                naja Würfel...

                Wie gesagt, ein "beweisbar Sicheres" Verfahren ist verdammt schwierig, denn:

                1. Der Key muss so lang sein wie der Klartext, um eine Festplatte zu verschlüsseln braucht man eine Festplatte um den Key zu speichern.
                2. Der Key muss absolut Zufällig sein.

                Prozesse die Absolut Zufällig sind:
                -Physikalisches Rauschen
                -Das abgeben von Atomen von Radioaktiven Material
                -Photonpolarisierung beim einem anderem Filter

                Die Quantenkryptografie kann benutzt werden, um Daten _absolut_ sicher zu übertragen.

                Denn:
                Wenn ein Lauscher die Photonen abfängt, verändert er diese automatisch. Der richtige Empfänger könnte dies Feststellen und die Kommunikation beenden.
                Auf diese Weise könnte man einen One-Time-Pad austauschen und sichergehen, das keiner Mithört.

                1. Hallo,

                  Auf diese Weise könnte man einen One-Time-Pad austauschen und sichergehen, das keiner Mithört.

                  Das Verfahren kenne ich (stand mal was in der ct drüber),
                  aber die Hardware und die Infrastruktur ist noch nicht vorhanden.
                  Außerdem: wenn man eine 100% abhörsichere Verbindung hat braucht
                  man keine Verschlüsselung mehr. AFAIK wird der (zeitaufwändige)
                  Quantenkryptographische Prozess nur zum erstellen eines 4096Bit
                  AES Keys benutzt, mit dem wird dann die Nachricht verschlüsselt
                  und ganz normal übertragen. Ein zufälliger 4096 Bit AES Key ist
                  IMHO sicher genug, wenn mal nicht kann man immer noch 8192,
                  16384, 32768 Bit lange Schlüssel verwenden.

                  Gruß
                  Alexander Brock

                  --
                  SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
                  http://againsttcpa.com
                  1. Hallo,
                    |Außerdem: wenn man eine 100% abhörsichere Verbindung hat braucht
                    man keine Verschlüsselung mehr.

                    Das Problem ist, man kann dies nicht sofort festellen (Physikalisch nicht möglich) und man könnte damit keine Daten übertragen.

                    Also Photonen können so sein:
                    | - / \

                    Der Sender schickt jetzt z.B. eine | (Photon), der Empfänger benutzt einen + Filter. Dort kann er jetzt das Photon richtig messen.

                    Dann sendet er ein / (Photon), der Empfänger benutzt einen + Filter (es gibt auch X Filter).
                    Wenn er jetzt das / Photon misst, verändert es sich in ein / oder \ Photon, mit einer Wahrscheinlichkeit von 50%.

                    Folgende Daten wurden gesendet:
                    Sender: |
                    Empfänger Filter: +
                    Gemessen: |

                    Sender: /
                    Empfänger Filter: +
                    Gemessen: \

                    Jetzt fragt der Senden was der Empfänger als Filter benutzt hat. Der sagt:
                    Bei eins habe ich + benutzt. Sender sagt, alles ok.
                    Bei zwei habe ich + Filter benutzt. Sender sagt, falscher Filter.

                    Würde man jetzt folgendes Senden:
                    Sender: |
                    Empfänger Filter: +
                    Gemessen: |  <= Richtig

                    Sender: /
                    Empfänger Filter: X
                    Gemessen: / <= Richtig

                    Sender: -
                    Empfänger Filter: X
                    Gemessen: \ <= Falsch

                    Sender: /
                    Empfänger Filter: +
                    Gemessen: \ <= Falsch

                    Sender: \ Empfänger Filter: +
                    Gemessen: | <= Falsch

                    Sender: /
                    Empfänger Filter: X
                    Gemessen: / <= Richtig

                    Also hätten jetzt beide Seiten:
                    | / / Gemessen.

                    Nimmt man an das | und \ für 1 stehen, und - und / für 0, dann hätte beide Seiten:
                    100

                    Diese 100 würden die jetzt als Schlüssel für die Verschlüsselung benutzen.
                    Eine Übertragung der Daten wären nur schwer möglich, denn man müsste viele Abschnitte mehrmals schicken, denn der Empfänger würde ca. die hälfte Falsch messen.

                    _Warum ist das Abhörsicher_
                    Also ich sende jetzt z.B. ein / Photon.
                    Ein Lauscher benutzt jetzt einen + Filter. Dabei wird das Photon in ein - bzw. | Photon "umgewandelt".

                    Der echte Empfänger benutzt z.B. jetzt ein X Filter, auf dem das | Photon auftrifft.
                    Der Empf. misst jetzt z.B. ein \ Photon.

                    Der Empf. ruft jetzt den Sender an, und teilt ihm mit das er ein X Filter benutzt hat und ein \ Photon gemessen hat.
                    Der Sender sagt, das kann nicht angehen, denn er hätte ein / Photon messen müssen.
                    Daraus ergibt sich, das ein Lauscher in der Leitung ist.

                    Wenn man jetzt so z.B. 100 Photon überprüft, ist die Chance fast 0, das ein Lauscher zufällig bei allen den richtigen Filter benutzt hat.
                    Diese Photonen werden dann aus dem One Time Pad gestrichen.

                    |Ein zufälliger 4096 Bit AES Key ist
                    IMHO sicher genug, wenn mal nicht kann man immer noch 8192,
                    16384, 32768 Bit lange Schlüssel verwenden
                    Das würde kaum was bringen und nur DAU's glauben an die erhöhte Sicherheit.

                    Zitat von <wwwphp-einfach.de>

                    |Erst recht stellt man sich 256 Bit Keys (2,3*10^77 Möglichkeiten) vor.
                    |Angenommen wir könnten quantenmechanische Effekte ausnutzen, die ein Elektron zur Dechiffriereinheit (Schlüssel knacken) umfunktioniert, und jedes Elektron mit einer Taktfrequenz von 1 Billiarden (1015) Hz arbeitet (das entspricht bereits der Frequenz von harten Röntgenstrahlen!). Dann müsste der so konstruierte Wundercomputer, der diese Aufgabe innerhalb 1 Jahres löst, eine Masse von 1028g haben, (ein Elektron wiegt etwa 10-27g), also wäre der Computer ca. so schwer wie die Erde.
                    |Ersetzen wir die Elektronen durch Molekühle (für Nicht-Physiker: Elektronen sind die kleinen Teile, die um einen Atomkern "fliegen". Elektronen haben eine deutlich kleinere Masse als Atomkerne), landen wir beim Gewicht bei ca. 1033g und das entspricht einer Sternenmasse. Bei unseren heutigen Vorstellungen würde der Computer dagegen so schwer sein, dass er ein schwarzes Loch bilden müsste, innerhalb unsere Aufgabe vielleicht gelöst würde, doch das Resultat könnten nie mehr nach außen dringen, wie es bei schwarzen Löchern so üblich ist.

                    Wie man sieht, sind solche "extremen" Schlüssel sinnlos, und vorallem Unhandlich. Lieber benutzt man dort dann 256 Bit Keys.

                    Und ja, Asymetrische Verfahren benutzen längere Schlüssel (>2048Bit), das kommt aber, weil es dort einen beschränkten Schlüsselraum gibt.
                    Dies ist bei Symetrischen Verfahren nicht der fall.

                    Aber wenn man Quantenkryptografie benutzt, dann kann man gleich auch einen One Time Pad sicher übertragen.

                    Die Quantenphysik kann man ausnutzen, um absolut zufällige Schlüssel zu generien.

                    Diesen würde man dann sicher übertragen. Danach kann man die Kommunikation per ungesichertem Kanal,z.B. Funk, weiterführen und es wäre _unmöglich_ den Text wieder zu entschlüsseln.

                    Dieser Datenaustausch wurde auch schon in der Praxis über eine Entfernung von rund 50 KM durchgeführt, per Glasfaserkabel.

                    MFG
                    Andavos

                    1. Hallo,

                      Also Photonen können so sein:
                      | - / \ [...]
                      Jetzt fragt der Senden was der Empfänger als Filter benutzt hat. Der sagt:
                      Bei eins habe ich + benutzt. Sender sagt, alles ok.
                      Bei zwei habe ich + Filter benutzt. Sender sagt, falscher Filter.

                      Ich dachte, beide Seiten veröffentlichen, welchen Filter sie benutzt
                      haben, wenn beide den gleichen genommen haben wird das Bit zum
                      Schlüssel hinzugefügt, sonst nicht?

                      Wenn man jetzt so z.B. 100 Photon überprüft, ist die Chance fast 0, das ein Lauscher zufällig bei allen den richtigen Filter benutzt hat.

                      Bei 100 Photonen ist die Wahrscheinlichkeit selbstverständlich _nicht_
                      Null, sondern 2^-100 = 7.8*10^-31.

                      |Erst recht stellt man sich 256 Bit Keys (2,3*10^77 Möglichkeiten) vor.
                      Dann müsste der so konstruierte Wundercomputer, der diese Aufgabe innerhalb 1 Jahres löst, eine Masse von 1028g haben, (ein Elektron wiegt etwa 10-27g), also wäre der Computer ca. so schwer wie die Erde.

                      Da  sind irgendwie ganz falsche Einheiten oder Zehnerpotenzen drin,
                      ein Elektron wiegt 9,109·10^-31g, die Erde 5,9736*10^24kg

                      [...] landen wir beim Gewicht bei ca. 1033g und das entspricht einer Sternenmasse.

                      Diese Masse ist viel zu klein für einen Stern, unsere Sonne wiegt
                      z.B. 1,9884+10^30 kg.

                      Wie man sieht, sind solche "extremen" Schlüssel sinnlos, und vorallem Unhandlich. Lieber benutzt man dort dann 256 Bit Keys.

                      Danke, dass du mich davon überzeugt hast.

                      Die Quantenphysik kann man ausnutzen, um absolut zufällige Schlüssel zu generien.

                      Klar. Die Polarisation der Photonen, die hier entstehen ist
                      absolut zufällig.

                      Gruß
                      Alexander Brock

                      --
                      SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
                      http://againsttcpa.com
                      1. Hallo,

                        Ich dachte, beide Seiten veröffentlichen, welchen Filter sie benutzt

                        haben.

                        Nein, dann könnte ja ein Lauscher herrausfinden welche Photonen man gesendet hat. Denn der Sendet benutzt einen | - / \ Filter.
                        Der Empfäner sagt + oder X Filter, der Sender sagt dann: Ja bzw. Nein, wenn der Empf. den richtigen Filter benutzt hat.

                        Bei 100 Photonen ist die Wahrscheinlichkeit selbstverständlich _nicht_
                        Null, sondern 2^-100 = 7.8*10^-31.

                        Ich schrieb:

                        fast 0

                        Aber wie wahrscheinlich es 10^-31 ?? Sonst kann man auch 1000 Photonen benutzen, da ist es 2^-1000 also absolut Unwahrscheinlich, das ein Lauscher immer die richtigen Filter benutzt.

                        Da  sind irgendwie ganz falsche Einheiten oder Zehnerpotenzen drin,

                        Ja das stimmt, weil wie gesagt ich es von www.php-einfach.de kopierte habe. Dort ist es per HTML als Hochformat dargestellt.
                        Beim kopieren ist diese Formatierung verloren gegangen.
                        Deswegen müsst ihr immer ein ^ nach 10 denken ;)

                        Also
                        10^28 g Masse der Elektronen
                        10^-27g Elektron
                        10^33g Sternenmasse => Schwarzes Loch.

                        MFG
                        Andavos

                        1. Hallo Andavos,

                          Ich dachte, beide Seiten veröffentlichen, welchen Filter sie benutzt
                          haben.

                          Nein, dann könnte ja ein Lauscher herrausfinden welche Photonen man gesendet hat. Denn der Sendet benutzt einen | - / \ Filter.
                          Der Empfäner sagt + oder X Filter, der Sender sagt dann: Ja bzw. Nein, wenn der Empf. den richtigen Filter benutzt hat.

                          Ist dann dass, was in der Wikipedia steht, falsch?

                          Gruß
                          Alexander Brock

                          --
                          SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
                          http://againsttcpa.com
                  2. Hi,

                    Ein zufälliger 4096 Bit AES Key ist
                    IMHO sicher genug, wenn mal nicht kann man immer noch 8192,
                    16384, 32768 Bit lange Schlüssel verwenden.

                    Imho basiert diese ganze Verschlüsselungsgeschichte auf der Unfähigkeit der Mathematik, bestimmte Verfahren rückwärts zu betreiben. Sollte dies nun doch irgendwann mal gelingen, ist es eigentlich relativ egal, wie lange ein Schlüssel ist - zudem rechnest du dich schon beim Verschlüsseln dumm und dämlich.

                    E7

                    1. Hallo,

                      Imho basiert diese ganze Verschlüsselungsgeschichte auf der Unfähigkeit der Mathematik, bestimmte Verfahren rückwärts zu betreiben.

                      AES basiert darauf, dass es sehr einfach ist, zwei große Primzahlen
                      miteinander zu multiplizieren, aber man nur durch ausprobieren
                      aus dieser großen Zahl wieder die zwei kleineren herausfinden kann

                      Sollte dies nun doch irgendwann mal gelingen, ist es eigentlich relativ egal, wie lange ein Schlüssel ist - zudem rechnest du dich schon beim Verschlüsseln dumm und dämlich.

                      Das wird beim faktorisieren großer Zahlen nicht[tm] passieren.

                      Gruß
                      Alexander Brock

                      --
                      SelfCode: ie:{ fl:{ br:> va:) ls:# fo:) rl:( n4:( ss:| de:> js:( ch:| sh:( mo:) zu:}
                      http://againsttcpa.com
                      1. Hallo,
                        O_o lass es lieber sein..

                        AES ist ein Symmetrisches Verfahren zum Verschlüsseln von Daten.

                        Was du meinst ist RSA, ein Asymmetrisches Verfahren. Wird vorallem dazu benutzt einen Key für ein Symmetrisches Verfahren zu übertragen, denn Asymmetrische Verfahren sind sehr langsam.

                        MFG

    2. Hi,

      warum prüfst du, ob der Key schon vorhanden ist?

      1. Die Wahrscheinlichkeit, dass ein Key doppelt vergeben wird, ist gering
      2. Häng an den Key doch einfach die aktuelle Zeit dran, dann ist die Wahrscheinlichkeit noch geringer
      3. Warum darf ein Key eigentlich nicht doppelt vorkommen? Der Nutzer muss ihn wahrscheinlich in einer Email aktivieren, aber was hat das mit den anderen Nutzern zu tun? Schicke doch einfach den Username im Key bzw. dem Aktivierungslink mit?

      Thx, gute idee!

  3. Hallo,
    warum möchtest du das denn überprüfen??

    Mal angenommen in deinem Forum melden sich täglich 10 Leute an, was eigentlich recht viel ist.

    Dann benutzt du einen Random Generator, dieser hat glaub ich einen Zahlenraum von über 1,6 Billionen.

    Also ist die Chance, das jemand am gleichen Tag die gleichen Keys bekommt 1 zu 160 Milliarden.

    Beim Lotto hat man eine Chance von 1 zu 14 Millionen, also im Vergleich recht gut ;)

    Und wo ist das Problem wenn 2 User den gleichen Key haben?

    1. Keiner weiß (ohne Mails abzufragen) welchen Key er hat
    2. Die Chance ist gleich 0 das jemand anders den gleichen Key hat, wenn doch wüsste er nicht wer

    MFG
    Andavos

    1. Nochmal danke an alle!

      Die idee mit dem Username ist gut und hat geklapt.

      MFG
      Sven!