Moin!
Moin!
Genau genommen willst Du scheinbar etwas, was eindeutig ist, und zugleich etwas, was schwer zu erraten ist. Das kann man sich aus etwas (was eindeutig ist) und etwas (was schwer zu erraten ist) zusammenbauen:
Beispiel:
$hex = uniqid() . bin2hex(openssl_random_pseudo_bytes(32));
uniqid() ist aber nicht eindeutig! Ich habe Code in meiner Software, die aufgrund von Nicht-Eindeutigkeit von uniqid() noch einen Counter dranhängt, das wievielte Mal das jetzt ist.
Wenn du nicht in der Lage bist, 32 zufällige Bytes als ausreichend zufällig zu akzeptieren, dann erhöhe den Wert. Uniqid() liefert 13 Hexzahlen, also 6,5 Bytes. Aufgerundet wären das statt 32 also 39 Zufallsbytes, und das ist sogar extrem besser als uniqid(), weil dort die meisten Zahlen konstant sind.
Grüße Sven