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!
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!
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.
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.
Ale np. CashCrusader może odkodowywać :).
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 :).
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.
praktycznie… teoretycznie najskuteczniejsze są tęczowe tablice, ale i na to jest bardzo prosta metoda, wystarczy posolić.