Jörg Reinholz: Und jetzt, warum das falsch ist:

Beitrag lesen

Moin!

ergibt: 4314398832739891950041055679321289

Und jetzt erzähle ich, warum das nicht stimmt:

echo "<?php  echo uniqid(); ?>" | php | wc -c

Ergebnis: nur 13!

Ein Blick auf die Ausgabe sagt: Hexadezimal. Taschenrechner:

echo "15^13/10000" | bc

Ergebnis: 194619506835

Also nur: 1/194.619.506.835

Das ist nicht so sehr brauchbar. Im Lotto wird nämlich auch dauernd gewonnen.

Mithin macht es keinen Sinn die Ausgaben von uniqid() dirch md5 zu jagen. Wenn überhaupt, dann: md5( uniqid() . uniqid() . uniqid() )

Aber auch das wäre dumm, denn dann machst Du aus einer hexadezimalen Zahl mit 39 Stellen eine mit 32 Stellen, schränkst die Volatilität also ein.

Jörg Reinholz