![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat 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? uniqid |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 12.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Główny roblem polega na tym w jaki sposób go zaszyfrować w bazie. Zaszyfrowana wersja musi być unikalna, a przecież od dwóch różnych kluczy mogą powstać dwa takie same hashe, co prawda prawdopodobieństwo jest małe, ale jednak. Chyba jednak posłucham się blooregarda i będę szyfrował zwykłą funkcją hashującą choćby md5 i sprawdzał, czy wartość zaszyfrowana jest w bazie jak będzie to jeszcze raz wylosuję kod i go zahaszuję. Nie powinno być z tym problemu. Rzecz nie powinna się często powtarzać. Prawdopodobnie ograniczę hasha do jakiś 16 znaków, gdyż taki długi klucz jak na przykład w md5 nie jest potrzebny. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 29.09.2025 - 16:02 |