Zapomnij o używaniu długich hashy MD5 i SHA1 generowanych z nie wiadomo jakich unikalnych ciągów. Jeśli jeszcze nie znasz funkcji uniqid to najwyższy czas ją poznać.

Dwie najczęściej wykorzystywane metody do generowania hashy to właśnie MD5 i SHA1. Są one jednak o tyle nieporęczne, że trzeba podawać jako ich argumenty unikalne ciągi znaków. Z tych ciągów zostaną wygenerowane unikalne hashe. Poza tym MD5 generuje 32 znaki, a SHA1 42. Dla mnie trochę za długie.

Kiedy potrzebujesz krótkiego unikalnego hasha bez zbędnych sztuk, użyj funkcji uniqid.

Bierze ona dwa parametry:

  • prefix – ciąg znaków który zostanie dodany przed hashem
  • more_entropy – dosłownie „większa entropia”. Hash będzie miał doklejone dodatkowe 8 cyfr po kropce. Czyli dodatkowe 9 unikalnych znaków.

 

Przykłady użycia

Szybko i łatwo

echo uniqid();

Dostaniesz: 54cfe6848dbe6

Prefix? Proszę bardzo

echo uniqid('prefix_');

Dostaniesz: prefix_54cfe6848dbe6

Większa szansa na unikalny hash

echo uniqid('', true);

Dostaniesz: 54cfe6848dbe6.97845079

 

Jak to działa

uniqid generuje hash z bieżącego czasu w mikrosekundach.

Racja, możesz zrobić też:

md5(microtime());

Ale po co się męczyć?

Opublikowany przez Kuba Mikita

Miłośnik minimalizmu i prostoty, bo nie potrafi stworzyć niczego ładnego. Ma kołdrę, na której wypisane są funkcje WordPressa.

W odpowiedzi na “Szybki sposób na unikalne ID w PHP”

Możliwość komentowania została wyłączona.