Allora.. ho scritto un semplice codice per "vedere" se e quanti duplicati ottengo facendo 10000 hash consecutivi.
Se avete un paio di minuti, provate a fare un test. Poi mi dite che ne pensate.

Codice PHP:
<pre>

<?
$arr
=array();

for (
$i=0$i<10000$i++) {
    
$n=hash('crc32',uniqid(),false);

    
$find=array_search($n,$arr);
    if (
is_numeric($find))       echo "found: ".$n."\tindex: ".$i."\n";

    
$arr[]=$n;
}

print_r($arr);
?>

</pre>


In 2/3 test, dovreste ricevere qualche messaggio del tipo:

codice:
found: 0e838051    index: 6979


Adesso provate a fare un "find" (dal browser") e cercate il "codice" trovato
(in questo caso "0e838051")

Secondo il mio codice, dovrebbero esserci PIU' di 1 risultato.
Invece io ne trovo SOLO UNO!
Come è possibile che venga stampato il "found"?
Il mio codice è sbagliato??

Ditemi che ne pensate, che ci facciamo due risate