Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tablice tęczowe
lord_t
post
Post #1





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


Na forum parę razy pojawia się pojęcie tablic tęczowych. Definicja na wikipedii nie mówi mi zbyt wiele; stąd też moje pytanie:
(1a)Czy tablica tęczowa np. md5 to zbiór ciągów znakowych, takich że hash md5 z tego ciągu odpowiada przynajmniej jednemu hashowi ciągu nie zawartego w tablicy tęczowej?

A po polsku:
(1b)Zakładamy, że mdX('alfa')=mdX('beta')='q2we' i mdX('xx')=mdX('dd')=mdX('hh')='aafa' oraz że to wszystkie hashe dla mdX. Czy tablica tęczowa hasha mdX wygląda np. tak:
'alfa':'q2we',
'xx':'aafa'

? (Czyli, że zawiera tylko po jednym słowie dla każdej wartości hasha.)


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Tablice tęczowe są tworzone w ten sposób, że jakiś ludek/skrypt wpisuje hasło, serwer generuje sobie na jego podstawie mdX i zapisuje do bazy. Czyli tak jak napisałeś, fraza -> hash. Frazy są unikalne, hash'e nie.

Jak wiesz, może się zdarzyć, że dwie frazy mają taki sam hash, ale tego typu strony (przynajmniej najpopularniejsze) zwracają po jednym wyniku, czyli tak na prawdę pierwszy zwrócony przez bazę danych.

Tak mi sie przynajmniej wydaje i na to wskazuje zdrowy rozsądek.

Nie mniej jednak znaleźć dwie frazy o takich samych hash'ach nie jest łatwo. Możesz zatem powiedzieć dlaczego o to pytasz? smile.gif

[edit]
Hmm, ale z drugiej strony bardziej wydajnym byłoby założyć w bazie danych klucz na pole z hash'em. Więc tak na prawdę zależy to od osoby piszącej stronkę smile.gif

Ten post edytował sowiq 23.09.2008, 21:26:39
Go to the top of the page
+Quote Post
lord_t
post
Post #3





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


W przypadku znalezienia tego samego hasha nie ma sensu dodawać kolejnego ciągu do bazy, skoro i tak ten drugi daje ten sam hash. Wydaje mi się też, że po zakończeniu procesu generacji tablicy tęczowej hashe są zbędne, więc tablica tęczowa będzie po prostu zawierać same ciągi znaków.
Ponadto treści tych ciągów są raczej bez znaczenia, bo z tego co wiem tablic tęczowych używa się do łamania np. md5, więc komuś nie zalezy na przekształceniu hasha acf43fe54* w ciąg, a na znalezieniu ciągu który da hash acf43fe54*.

Nie utożsamiałbym tablic tęczowych ze stronami typu http://md5.rednoize.com/, które posiadają bazę ciągów i odpowiadających im hashy, bo to wg mnie nie tablice tęczowe.


*) byle jaki przykład:)

___

Pytam o to wszystko, bo wydaje mi się, że w końcu zrozumiałem czym są te tablice tęczowe;]


--------------------
Go to the top of the page
+Quote Post
sowiq
post
Post #4





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat
z tego co wiem tablic tęczowych używa się do łamania np. md5, więc komuś nie zalezy na przekształceniu hasha acf43fe54* w ciąg, a na znalezieniu ciągu który da hash acf43fe54*.


Nie istnieje funkcja odwrotna do md5/sha1, więc nie da się przekształcić hash'a w ciąg wejściowy. Pozostaje tylko szukanie takiego ciągu, który daje taki sam hash. A wykonać to można na dwa sposoby:
1) obliczać hash każdego ciągu w bazie danych i dopasowywać do wprowadzonego. Robimy to za każdym razem kiedy wyszukujemy jakiegoś hash'a
2) trzymamy w bazie danych ciąg + hash, dzięki czemu ograniczamy się jedynie do porównań z 'łamanym' hash'em


Wikipedia też ma na to swoje zdanie: http://pl.wikipedia.org/wiki/T%C4%99czowe_tablice tylko szczerze mówiąc nie zrozumiałem środkowego akapitu smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 09:10