Usa una concatenazione di un numero incrementato univoco e un numero generato casualmente.
Il numero unico incrementato assicura che il risultato sia unico e il numero generato casualmente lo rende difficilmente intuibile.
Questo è semplice e garantito per nessuna collisione (1). Il risultato è incrementale , in parte casuale e non prevedibile (a condizione che la parte del numero casuale sia generata con un buon PRNG).
(1):Devi inserire id
e random
con zeri, o per separarli con qualche carattere non numerico.
Con un db MySQL, questo si traduce in:
CREATE TABLE foo (
id int not null auto_increment,
random int not null,
...
primary key (id)
);