Kodowanie w md5


(Patrol) #1

Witam!

Chce zacząć przygodę z kodowaniem (md5). Chciałbym o kilka wskazówek (jak się koduje, jak się rozkodywuje).

Oczywiście chodzi mi o php.

Pozdrawiam!


(Pavobe Reg) #2

MD5 nie służy do kodowania (nie da się odkodować), tylko do hashowania (miksowania). Możesz to przeprowadzić tylko w jedną stronę (zakodować).

Możesz tego użyć np. do zapamiętywania haseł w Bazie Danych. Gdy pobierasz dane od usera tworzysz hash z jego hasła i porównujesz z tym, w bazie danych.

Jeżeli chodzi odkodowywanie, to samo w sobie nie jest możliwe, ale jest w sieci dużo baz danych z ciągami znaków oraz ich hashami. Podczas wyszukiwania po hashu możesz zobaczyć co to za ciąg. W przypadku haseł 6ścio znakowuch, składających się tylko z dużych i małych liter oraz cyfr masz jakieś 20% na to, że ciąg jest w bazie.


(system) #3

Np. chcesz zapisać w md5 wyraz tajne. Wpierw przez echo patrzysz jak to wygląda w wersji zakodowanej

echo (md5(tajne));

co da w efekcie 77f869401de682f60e0e749493ab793d. Potem w skrypcie odwołujesz się do wersji kodowanej np. tak

if (md5($_POST['haslo']) == '77f869401de682f60e0e749493ab793d') { ... }

gdzie w polu formularza 'haslo' piszesz zwyczajnie wyraz tajne a w php masz to zakodowane jako ciąg cyfr.


(Patrol) #4

Ale np. CashCrusader może odkodowywać :).


(Pavobe Reg) #5

Nie znam tego programu, ale pewnie działa tak, że hashuje kolejne ciągi znaków i porównuje hashe lub korzysta z jakiejś zewnętrznej bazy :).


(Patrol) #6

http://cashcrusadersoftware.com/


(Kutar 0) #7

Tęczowa tablica. Da się odzyskać takie hasło, o ile jest zawarte w bazie tęczowej tablicy. No ale cóż, takie tablice zawierają przeciętnie hasła do ok. 8 znaków, a zajmują wiele GB. Po za tym jeśli hasło składa się z wielkich i małych liter, cyfr i znaków specjalnych, to też jest mało prawdopodobne, że znajdziemy odpowiedniego hasha. Są strony internetowe, które oferują możliwość porównania hasha z ich bazą, ale lepiej nie będę tu podawał, żeby "dzieciarnia się nie dorwała do tego".

Mówisz o ataku siłowym. To jest dobre o ile hasło jest krótkie i nieskomplikowane. W praktyce złamanie jednego hasła tą metodą może zając nawet wiele lat. Podobnym typem jest atak słownikowy sprawdzający jedynie najczęściej używane słowa.

Innym sposobem może być skorzystanie z tego, że kiedyś złamano ten algorytm (więcej na wikipedii), ale że tak się wyrażę: nie dla psa kiełbasa.

Tak więc podsumowując: dla zwykłego "śmiertelnika" złamanie hasha w md5 jest praktycznie niemożliwe.


(Airborn) #8

praktycznie... teoretycznie najskuteczniejsze są tęczowe tablice, ale i na to jest bardzo prosta metoda, wystarczy posolić.