Update, März 2014:
Erstens ist es wichtig zu beachten, dass dies uniqideine Fehlbezeichnung ist, da keine eindeutige ID garantiert wird.
Gemäß der PHP-Dokumentation :
WARNUNG!
Diese Funktion erstellt keine zufälligen oder unvorhersehbaren Zeichenfolgen. Diese Funktion darf nicht aus Sicherheitsgründen verwendet werden. Verwenden Sie kryptografisch sichere Zufallsfunktionen / Generatoren und kryptografisch sichere Hash-Funktionen, um eine unvorhersehbare sichere ID zu erstellen.
Und
Diese Funktion generiert keine kryptografisch sicheren Token. Ohne zusätzliche Parameter unterscheidet sich der Rückgabewert kaum von microtime () . Wenn Sie kryptografisch sichere Token generieren müssen, verwenden Sie openssl_random_pseudo_bytes () .
Wenn Sie mehr Entropie auf true setzen, wird ein eindeutigerer Wert generiert. Die Ausführungszeit ist jedoch länger (wenn auch zu einem winzigen Grad).
Wenn auf TRUE gesetzt, fügt uniqid () am Ende des Rückgabewerts zusätzliche Entropie hinzu (unter Verwendung des kombinierten linearen Kongruenzgenerators), was die Wahrscheinlichkeit erhöht, dass das Ergebnis eindeutig ist.
Beachten Sie die Linie increases the likelihood that the result will be uniqueund nicht, dass dies die Eindeutigkeit garantiert .
Sie können "endlos" bis zu einem gewissen Punkt nach Einzigartigkeit streben und diese mithilfe einer beliebigen Anzahl von Verschlüsselungsroutinen verbessern, indem Sie Salze und dergleichen hinzufügen - dies hängt vom Zweck ab.
Ich würde empfehlen, die Kommentare zum Hauptthema von PHP zu lesen, insbesondere:
http://www.php.net/manual/en/function.uniqid.php#96898
http://www.php.net/manual/en/function.uniqid.php#96549
http://www.php.net/manual/en/function.uniqid.php#95001
Was ich empfehlen würde, ist herauszufinden, warum Sie Eindeutigkeit benötigen, aus Sicherheitsgründen (dh um eine Verschlüsselungs- / Verschlüsselungsroutine zu ergänzen)? Auch Wie einzigartig braucht es zu sein? Schauen Sie sich zum Schluss die Geschwindigkeitsüberlegung an. Die Eignung ändert sich mit den zugrunde liegenden Überlegungen.
uniqidmitmore_entropyset nur etwa 92 Bit Entropie (23 Hexbit). Um zu verstehen, warum das nicht gut für die Einzigartigkeit ist, siehe Das Geburtstagsproblem ...