Criar Identificadores Únicos em PHP
Henrique Dias
July 30, 2014
Como deve saber, PHP é umas das linguagens de servidor mais utilizadas no mundo. Hoje vou mostrar-vos uma fantástica forma de gerar IDs (identificadores) únicos. O método para o fazer chama-se uniqid() e deve ser utilizado da seguinte forma. '; } E eu recebi o seguinte: 540f25baa463c 540f25baa4644 540f25baa4647 540f25baa4649 540f25baa464c 540f25baa464f 540f25baa4652 540f25baa4654 540f25baa4657 540f25baa4659 Como pode ver, existe um padrão que é seguido em cada entrada. Agora, vamos tornar isto mais interessante com prefixos. O primeiro parâmetro pode aer utilizado para prefixos. Exemplo: '; } // => // id.53d8a6b00ab54 // id.53d8a6b00ab61 // id.53d8a6b00ab65 // id.53d8a6b00ab6a // id.53d8a6b00ab6e // id.53d8a6b00ab73 // id.53d8a6b00ab78 // id.53d8a6b00ab7d // id.53d8a6b00ab80 // id.53d8a6b00ab85 Antes de continuarmos para o segundo parâmetro vamos tornar isto mais divertido utilizando a função '; } // => // 1847953d8a7a793dad // 1593253d8a7a793dc6 // 3066153d8a7a793dd3 // 1359453d8a7a793de0 // 1441153d8a7a793ded // 55253d8a7a793df9 // 1926553d8a7a793e05 // 227853d8a7a793e11 // 362353d8a7a793e1d // 635653d8a7a793e2a Pode aprender mais sobre esta função aqui aqui. Podemos também ativar a entropia utilizando o segundo parâmetro. '; } // => // 53d8a804e20009.43950771 // 53d8a804e201f6.55814947 // 53d8a804e20303.56124572 // 53d8a804e203f8.58127959 // 53d8a804e204e1.29334755 // 53d8a804e205d8.15855084 // 53d8a804e206c1.12343150 // 53d8a804e207b1.83476235 // 53d8a804e208b5.92283530 // 53d8a804e209d6.58175306 Com entropia activada, o tamanho do conjunto passa de 13 a 23 caracteres. Podemos ainda utilizar a entropia com o comando 654753d8a87287e1c6.37774954 2401653d8a87287e2e3.55006223 45753d8a87287e363.99897593 1249453d8a87287e3d4.10326514 1534353d8a87287e451.40348788 178853d8a87287e4c0.49212408 2906153d8a87287e547.79619666 303453d8a87287e5c2.76725867 1025153d8a87287e649.36971601 586453d8a87287e6c7.26848089 Isto é bom para quando se tem mais de um servidor a correr a mesma aplicação. Assim evitam-se possíveis erros causados por IDs iguais. Como assim? Se tiverem dois ou mais servidores a correr a mesma aplicação, pode acontecer algum correr o comando no mesmo micro segundo. É isto. :)
Discussion in the ATmosphere