A função uniqid() gera um ID exclusivo com base no microtempo (o tempo atual em microssegundos).
Veja:
<?php echo uniqid(); ?>
Tecle f5 3 vezes e olha o resultado:
6303f65f1d983
6303f6c188ea7
6303f6c803e03
Valor Inicial Fixo para a Função uniqid()
Podemos passar um prefixo, ou seja, um valor inicial que não muda.
<?php echo uniqid('id'); ?>
Resultado:
id630510913c9a4
Gerando Valores Mais Únicos Ainda
Podemos fazer com que os valores gerados por uniqid() seja mais únicos ainda. Para isso usamos true como segundo parâmetro:
<?php echo uniqid('id',true); ?>
Resultado:
id6305114ba5c331.75821155
A opção true na verdade ativa o parâmetro “mais_entropia” que especifica mais entropia no final do valor de retorno, o que torna o id mais exclusivo.
Conclusão
O ID gerado a partir da função uniqid() não é o ideal para todos os casos, pois é baseado na hora do sistema e não é protegido por criptografia. Assim, não deve ser para fins criptográficos.
Veja também:
Comment on “PHP: Usando a Função uniqid()”