Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcje haszujace i unikalny identyfikator
Sekwer
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 18.01.2009

Ostrzeżenie: (0%)
-----


Witam, zastanawiam się nad generowaniem unikalnego identyfikatora o jak najkrótszym łańcuchu znaków. Szukałem na forum i nie znalazłem odpowiedniego tematu. Moją uwage zwróciło kilka funkcji.

CRC32
ADLER32
uniqid() (funkcja w php)

Nie chodzi tu o szyfrowanie haseł, a o budowanie krótkich linków czy krótkich nazw plików.
Która funkcje byście polecali?

PS Swoja droga ciekawe jakie jest prawdopodobieństwo kolizji. Myślę, że do takich zastosowań jak nazwy plików się nada (IMG:style_emoticons/default/smile.gif)

Ten post edytował Sekwer 12.05.2010, 19:26:25
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
croc
post
Post #2





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


Ja bym skorzystał mimo wszystko z md5, tylko wyciął z niego np. losowo 8 znaków.

  1. $hash = md5(time() . '-' . rand(0, 1000));
  2. $hash = substr($hash, rand(0, 24), 8);


I zabezpieczyłbym się przed kolizjami, np. tak (jeżeli chodzi o unikalne nazwy plików, analogicznie możesz zrobić np. wyszukiwanie po hashu z bazy danych):

  1. do {
  2. $hash = md5(time() . '-' . rand(0, 1000));
  3. $hash = substr($hash, rand(0, 24), 8);
  4. }
  5. while(file_exists('pliki/' . $hash . '.txt'));
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 13:17