# uniqid

(PHP 4, PHP 5, PHP 7, PHP 8)

uniqid — Erzeugt eine zeitsbasierte ID

### Beschreibung

uniqid(string `$prefix` = "", bool `$more_entropy` = `false`): string

Gibt eine ID zurück, die auf der aktuellen Zeit mit einer Genauigkeit von einer Mikrosekunde basiert. Als Präfix wird der angegebene `prefix` verwendet und optional wird ein zufällig generierter Wert angehängt.

Achtung

Diese Funktion erzeugt keine kryptografisch sicheren Werte und darf nicht für kryptografische Zwecke verwendet werden oder für Zwecke, bei denen die zurückgegebenen Werte nicht abschätzbar sein dürfen.

Falls kryptographisch sichere Zufallszahlen benötigt werden, kann der Random\Randomizer mit der Random\Engine\Secure-Engine verwendet werden. Für einfache Anwendungsfälle bieten die Funktionen random_int() und random_bytes() eine bequeme und sichere API, die den CSPRNG des Betriebssystems verwendet.

Warnung

Diese Funktion garantiert nicht die Eindeutigkeit des Rückgabewerts, weil dieser auf der aktuellen Zeit in Mikrosekunden basiert oder, wenn `more_entropy` `true` ist, auf der aktuellen Zeit mit einer kleinen Menge an Zufallsdaten.

### Parameter-Liste

`prefix`

  Dieser Parameter ist z. B. nützlich, wenn IDs auf mehreren Hosts erzeugt werden und die Gefahr besteht, dass sie in derselben Mikrosekunde dieselbe Kennung erzeugen. Dies kann sogar auf einem einzelnen Host passieren, wenn die Systemuhr z. B. durch NTP angepasst und dadurch zurückgestellt wird.

  Bei leerem `prefix` ist die zurückgegebene Zeichenkette 13 Zeichen lang. Falls `more_entropy` `true` ist, sind es 23 Zeichen.

`more_entropy`

  Falls dieser Parameter auf `true` gesetzt ist, fügt uniqid() am Ende des Rückgabewertes zusätzliche mit dem Kongruenzgenerator für Pseudozufallszahlen (Combined Linear Congruential Generator) erzeugte Entropie an, wodurch die Wahrscheinlichkeit erhöht wird, dass das Ergebnis eindeutig ist.

### Rückgabewerte

Gibt eine zeitstempelbasierte ID als Zeichenkette zurück.

Warnung

Diese Funktion garantiert nicht die Eindeutigkeit des Rückgabewerts.

### Beispiele

Beispiel #1 uniqid()-Beispiel

`<?php
/* Eine eindeutige ID, beispielsweise: 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());
/* Zusätzlich kann ein Präfix genutzt werden. Dabei sind die
* folgenden beiden Anweisungen identisch:
*
* $uniqid = $prefix . uniqid();
* $uniqid = uniqid($prefix);
*/
printf("uniqid('php_'): %s\r\n", uniqid('php_'));
/* Weiterhin kann der Parameter more_entropy aktiviert werden (auf einigen
* Systemen wie Cygwin ist dies sogar erforderlich). Dadurch generiert
* uniqid() einen Wert ähnlich dem folgenden: 4b340550242239.64159797
*/
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>`

### Anmerkungen

> Hinweis:

> Unter Cygwin muss der Parameter `more_entropy` auf `true` gesetzt sein, damit die Funktion funktioniert.

### Siehe auch

- random_bytes() - Get cryptographically secure random bytes

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open