![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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.
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):
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 2 Dołączył: 18.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym skorzystał mimo wszystko z md5, tylko wyciął z niego np. losowo 8 znaków. 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):
Twoje rozwiązanie nie jest profesjonalne. BTW Po co mam robić dodatkowe zapytanie do bazy o klucz? Moje rozwiązanie musi działać bez bazy, ponieważ raz mogę mieć bazę w projekcie a raz nie. Wydaje mi się, ze nie da się zejść poniżej 8 znaków, mówią to proste obliczenia matematyczne jeżeli haszem jest liczba heksadecymalna. Pozdrawiam (IMG:style_emoticons/default/smile.gif) PS Łatwo chyba zapamiętać 8 znaków (IMG:style_emoticons/default/yahoo.gif) Ten post edytował Sekwer 14.05.2010, 14:01:25 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 18:44 |