Ich suche nach einer Möglichkeit, speziell in PHP, dass ich garantiert immer einen eindeutigen Schlüssel bekomme.Eindeutige Schlüsselgenerierung
Ich habe getan, die folgenden:
strtolower(substr(crypt(time()), 0, 7));
Aber ich gefunden habe, dass einmal in eine Weile ich mit einem doppelten Schlüssel am Ende (selten, aber oft genug).
habe ich auch tun dachte:
strtolower(substr(crypt(uniqid(rand(), true)), 0, 7));
Aber nach der PHP-Website, uniqid() könnte, wenn uniqid() zweimal in der gleichen Mikro genannt wird, könnte es den gleichen Schlüssel erzeugen. Ich denke, dass der Zusatz von rand() es selten, aber immer noch möglich wäre.
Nach den oben genannten Zeilen bin ich auch Zeichen wie L und O entfernen, so dass es für den Benutzer weniger verwirrend ist. Dies ist vielleicht ein Teil der Ursache für die Duplikate, aber immer noch notwendig.
Eine Option, an die ich denke, ist die Erstellung einer Website, die den Schlüssel generiert und ihn in einer Datenbank speichert, um sicherzustellen, dass er vollständig einzigartig ist.
Irgendwelche anderen Gedanken? Gibt es da draußen irgendwelche Webseiten, die eine API haben oder einfach den Schlüssel zurückgeben? Ich habe http://userident.com gefunden, aber ich bin mir nicht sicher, ob die Schlüssel vollständig eindeutig sein werden.
Dies muss im Hintergrund ohne Benutzereingaben ausgeführt werden.
Warum müssen die Kennwörter vollständig eindeutig sein? –
Ich nehme an, Krypt ist nur, weil Sie Wert kryptieren müssen, es hat nichts damit zu tun, einzigartigen Wert zu schaffen, nicht wahr ?! –
Siehe auch: [PHP-Funktion zum Generieren von v4 UUID] (http://StackOverflow.com/a/15875555/1338292). –