Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Generowanie unikalnych id. Algorytm hashujący bez kolizji.
SnakeEater
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 12.03.2010

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


Witam,
Buduję aplikację w której obiekt byłby identyfikowany na podstawie unikalnego id w postaci xxx-xxx-xxx-xxx, gdzie x to znak alfabetu a-z lub cyfra. id to miałoby być na tyle unikalne, żeby nie dało się zgadnąć. URL będzie wyglądał tak:

www.mojadomena.pl/books/394-a34-g34-dd2

W jaki sposób zahashować taki id do bazy? Chodzi o taki algorytm, żeby nie było kolizji, więc chyba md5 odpada. Wygenerowany hash ze względu na unikalność może być równie długi lub dłuższy, gdyż ze względu na założenia nie może być krótszy. To wiem. Problem tylko skąd wziąć taki algorytm? Zna ktoś może jakiś? A może zwyczajnie pozamieniać litery w stylu znak klucz -> znak wartość? Tylko wtedy chyba na podstawie kilku "tokenów" i ich zahaszowanych wersji da się złamać kod. Czyż nie?

Ten post edytował SnakeEater 26.03.2010, 15:26:51
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SnakeEater
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 12.03.2010

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


chodzi o to, żeby kod był w taki sposób jak podałem. Chodzi o to, żeby nikt nie zgadł takiego kodu, bo nie książki będą tylko coś poważniejszego. Przy takiej ilość znaków jak podałem ilość kombinacji to będzie 36^12, a więc nikt przypadkiem go raczej nie znajdzie. Ten kod będzie jednocześnie służył jako login i hasło zarazem, a tego nie przechowuje się w formie niezaszyfrowanej przecież. Zaszyfrowana postać musi być unikalna z tego samego powodu. Trzeba przecież jednoznacznie znaleźć użytkownika. Przecież to będzie klucz główny, a on musi być unikalny, żeby nie wyskoczyło dwóch takich ludzi. Żeby komuś przypadkiem nie wygenerował się taki sam login-password ;P
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: 28.12.2025 - 15:47