Czy możliwe jest odszyfrowanie skrótów MD5?

Ktoś mi powiedział, że widział systemy programowe, które:

  1. Odzyskiwanie zaszyfrowanych haseł MD5 z innych systemów;
  2. odszyfrować zaszyfrowane hasła i
  3. przechowuj hasła w bazie danych systemu za pomocą algorytmu własnego systemu.

Czy to możliwe? Myślałem, że odszyfrowanie skrótów MD5 nie jest możliwe.

Wiem, że są słowniki MD5, ale czy istnieje prawdziwy algorytm deszyfrowania?

Author: Maarten Bodewes, 2009-08-06

23 answers

Nie. MD5 nie jest szyfrowaniem (choć może być używany jako część niektórych algorytmów szyfrowania), jest to jednokierunkowa funkcja hashowa. Znaczna część oryginalnych danych jest faktycznie "utracona" w ramach transformacji.

Pomyśl o tym: MD5 ma zawsze długość 128 bitów. Oznacza to, że są 2128 możliwe skróty MD5. Jest to dość duża liczba, A jednak jest zdecydowanie skończona. A jednak istnieje nieskończona liczba możliwych wejść do danej funkcji hash (i większość z nich zawiera więcej niż 128 bitów, czyli marne 16 bajtów). Tak więc istnieje nieskończona liczba możliwości dla danych, które hashują do tej samej wartości. Rzecz, która sprawia, że hasze są interesujące, jest to, że niezwykle trudno jest znaleźć dwa kawałki danych, które hashują do tej samej wartości, a szanse na to, że dzieje się to przez przypadek, są prawie 0.

Prostym przykładem (bardzo niepewnej) funkcji hashowej (a to ilustruje ogólną ideę, że jest jednokierunkowa) byłoby wzięcie wszystkie bity kawałka danych i traktować je jako dużą liczbę. Następnie wykonaj podział liczb całkowitych używając dużej (prawdopodobnie pierwszej) liczby n i weź resztę (patrz: Moduł). Zostanie Ci pewna liczba od 0 do n . Jeśli wykonasz te same obliczenia ponownie (w dowolnym momencie, na dowolnym komputerze, w dowolnym miejscu), używając dokładnie tego samego ciągu, pojawi się ta sama wartość. A jednak nie ma sposobu, aby dowiedzieć się, jaka była pierwotna wartość, ponieważ tam są nieskończoną liczbą liczb, które mają tę dokładną resztę, gdy są podzielone przez n .

To powiedziawszy, stwierdzono, że MD5 ma pewne słabości, takie, że przy jakiejś skomplikowanej matematyce, możliwe jest znalezienie kolizji bez próby 2128 możliwe ciągi wejściowe. A fakt, że większość haseł jest krótka, a ludzie często używają wspólnych wartości (takich jak "hasło" lub "tajne") oznacza, że w niektórych przypadkach można całkiem dobrze odgadnąć czyjeś hasło przez Wyszukując hash lub używając Tęczowej tabeli . Jest to jeden z powodów, dla których należy zawsze "salt " hashować hasła, aby dwie identyczne wartości, gdy zostaną zahaszowane, nie były zahaszowane do tej samej wartości.

Gdy fragment danych zostanie uruchomiony przez funkcję hash, nie ma powrotu.

 369
Author: Adam Batkin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-06 19:43:28

Nie możesz - teoretycznie. Chodzi o to, że hash jest tylko w jeden sposób. Oznacza to, że jeśli komuś uda się uzyskać listę skrótów, nadal nie może uzyskać hasła. Dodatkowo oznacza to, że nawet jeśli ktoś używa tego samego hasła na wielu stronach (tak, wszyscy wiemy, że nie powinniśmy, ale...) każdy, kto ma dostęp do bazy danych witryny a, nie będzie mógł użyć hasła użytkownika na stronie B.

Fakt, że MD5 jest Hashem oznacza również, że traci informacje. Dla dowolnego hasha MD5, jeśli zezwalasz na hasła o dowolnej długości, może istnieć wiele haseł, które wytwarzają ten sam hash. Dla dobrego hasha byłoby obliczeniowo niewykonalne, aby znaleźć je powyżej dość trywialnej maksymalnej długości, ale oznacza to, że nie ma gwarancji , że jeśli znajdziesz hasło, które ma docelowy hash, to na pewno jest to oryginalne hasło. To jest astronomicznie mało prawdopodobne , że zobaczysz dwa hasła tylko ASCII o rozsądnej długości, które mają ten sam hash MD5, ale to nie niemożliwe.

MD5 to zły hash do użycia w hasłach:

  • jest szybki, co oznacza, że jeśli masz hash "target", tani jest wypróbowanie wielu haseł i sprawdzenie, czy możesz znaleźć taki, który hashuje do tego celu. Solenie nie pomaga w w tym scenariuszu , ale pomaga zwiększyć koszt znalezienia hasła pasującego do dowolnego zWielu hashów przy użyciu różnych soli.
  • wierzę, że ma znane wady, które ułatwiają znalezienie kolizji, chociaż znalezienie kolizji w drukowanym tekście (a nie dowolnych danych binarnych) byłoby przynajmniej trudniejsze.

Nie jestem ekspertem w dziedzinie bezpieczeństwa, więc nie wydam konkretnej rekomendacji poza "nie zwijaj własnego systemu uwierzytelniania."Znajdź jeden od renomowanego dostawcy i wykorzystaj go. Zarówno projektowanie, jak i wdrażanie systemów zabezpieczeń to trudna sprawa.

 151
Author: Jon Skeet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-19 09:29:38

Technicznie jest to "możliwe" , ale pod bardzo ścisłymi warunkami (rainbow tables , brutalne wymuszanie oparte na bardzo małej możliwości, że hasło użytkownika znajduje się w tej bazie danych hash).

Ale to nie znaczy, że to

  • Viable
    lub
  • Secure

Nie chcesz 'odwrócić' MD5 hash. używając metod opisanych poniżej, nigdy nie będziesz musiał. "Odwrócenie" MD5 jest właściwie rozważane złośliwe - kilka stron internetowych oferuje możliwość "złamania" i bruteforce MD5 hashów - ale wszystko to są ogromne bazy danych zawierające słowa słownikowe, wcześniej przesłane hasła i inne słowa. Istnieje bardzo mała szansa na to, że będzie on miał odwrócony hash MD5, którego potrzebujesz. a jeśli masz zasolony hash MD5-to też nie zadziała! :)


Sposób logowania z HASHOWANIEM MD5 powinien działać jest:

Podczas Rejestracja:
Użytkownik tworzy hasło - > hasło jest hashowane za pomocą MD5 - > Hash przechowywany w bazie danych

Podczas Logowania:
Użytkownik wpisuje nazwę użytkownika i Hasło - > (Nazwa użytkownika zaznaczona) hasło jest hashowane za pomocą MD5 - > Hash jest porównywany z przechowywanym Hashem w bazie danych

Gdy potrzebne jest "utracone hasło":

2 opcje:

  • użytkownik wysłał losowe hasło do logowania, następnie jest na podsłuchu, aby zmienić je na początku login.

Lub

  • Użytkownik otrzymuje link do zmiany hasła (z dodatkowym sprawdzeniem, czy masz pytanie zabezpieczające/etc), a następnie nowe hasło jest hashowane i zastępowane starym hasłem w bazie danych
 50
Author: Daniel May,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-18 05:32:05

Nie bezpośrednio. Ze względu na zasadę pigeonhole, istnieje (prawdopodobnie) więcej niż jedna wartość, która hashuje do dowolnego wyjścia MD5. W związku z tym nie można tego odwrócić z całą pewnością. Co więcej, MD5 jest stworzony, aby utrudnić znalezienie dowolnego takiego odwróconego skrótu (jednak zdarzały się ataki, które wytwarzają kolizje - to znaczy wytwarzają dwie wartości, które mieszają się do tego samego wyniku, ale nie można kontrolować, jaka będzie wynikowa wartość MD5).

Jednakże, jeśli ograniczysz przestrzeń wyszukiwania dla, na przykład, wspólnych haseł o długości poniżej N, może nie mieć właściwości nieodwracalności (ponieważ liczba wyjść MD5 jest znacznie większa niż liczba ciągów w interesującej nas dziedzinie). Następnie możesz użyć tęczowej tabeli lub podobnej do odwrotnych skrótów.

 30
Author: bdonlan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-06 19:28:06

Niemożliwe, przynajmniej nie w rozsądnym czasie.

Sposób, w jaki jest to często obsługiwane, to "Resetowanie" hasła. Oznacza to, że dajesz im nowe (losowe) hasło i wysyłasz je e-mailem.

 13
Author: Matthew Groves,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-24 13:20:57

Nie można przywrócić hasła md5.(w dowolnym języku)

Ale możesz:

Daj użytkownikowi nowy.

Zajrzyj do jakiegoś tęczowego stolika, aby może odzyskać Stary.

 12
Author: Nettogrof,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-24 13:24:11

Nie, musiał być zdezorientowany co do słowników MD5.

Skróty kryptograficzne (MD5, itd...) są W Jedną Stronę i nie możesz wrócić do oryginalnej wiadomości tylko z digestem , chyba że masz inne informacje o oryginalnej wiadomości itp. że nie powinieneś.

 9
Author: Robert Greiner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-06 20:08:09

Deszyfrowanie (bezpośrednie pobranie zwykłego tekstu z wartości zaszyfrowanej, w sposób algorytmiczny), nie.

Istnieją jednak metody, które wykorzystują tak zwaną tęczową tabelę . Jest to całkiem wykonalne, jeśli hasła są hashowane bez soli.

 8
Author: Sinan Taifour,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-06 19:29:33

MD5 jest algorytmem hashującym, nie można przywrócić wartości hash.

Należy dodać "change password feature", gdzie użytkownik podaje inne hasło, oblicza hash i przechowuje go jako nowe hasło.

 7
Author: Svetlozar Angelov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-24 13:21:24

Nie ma łatwego sposobu, aby to zrobić. Po to właśnie jest haszowanie hasła. :)

Jedną z rzeczy, którą powinieneś BYĆ w stanie zrobić, to ustawić tymczasowe hasło dla nich ręcznie i wysłać im to.

Waham się o tym wspomnieć, ponieważ jest to zły pomysł( i i tak nie ma gwarancji, że zadziała), ale możesz spróbować poszukać hasha w tęczowej tabeli, takiej jak milw0rm , aby zobaczyć, czy możesz odzyskać stare hasło w ten sposób.

 7
Author: Bill the Lizard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-24 13:29:09

Zobacz wszystkie inne odpowiedzi tutaj o tym, jak i dlaczego nie jest odwracalne i dlaczego i tak nie chcesz.

Dla kompletności istnieją tęczowe tabele , na których można wyszukać możliwe dopasowania. Nie ma gwarancji, że odpowiedzią w tęczowej tabeli będzie oryginalne hasło wybrane przez użytkownika, co znacznie je zmyli.

To również nie zadziała w przypadku solonych hashów. Solenie jest zalecane przez wielu ekspertów ds. bezpieczeństwa.

 6
Author: Dinah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-24 13:34:26

Nie ma sposobu na "odwrócenie" funkcji hashowej pod względem znalezienia dla niej funkcji odwrotnej. Jak wspomniano wcześniej, to jest cały sens posiadania funkcji hash. Nie powinien być odwracalny i powinien umożliwiać szybkie obliczanie wartości skrótu. Tak więc jedynym sposobem na znalezienie ciągu wejściowego, który daje daną wartość skrótu, jest wypróbowanie wszystkich możliwych kombinacji. Z tego powodu nazywa się to atakiem brute force.

Wypróbowanie wszystkich możliwych kombinacji zajmuje dużo czasu i jest to również powód, dla którego wartości hash są używane do przechowywania haseł w stosunkowo bezpieczny sposób. Jeśli atakujący jest w stanie uzyskać dostęp do bazy danych z wszystkimi hasłami użytkowników w środku, tracisz w każdym przypadku. Jeśli masz wartości hash i (idealistycznie mówiąc) silne hasła, będzie o wiele trudniej uzyskać hasła z wartości hash dla atakującego.

Przechowywanie wartości skrótu również nie stanowi problemu z wydajnością, ponieważ obliczanie wartości skrótu jest stosunkowo szybkie. Więc to, co robi większość systemów, to obliczanie wartości skrótu hasła, które wpisał użytkownik (co jest szybkie) , a następnie porównanie go z zapisaną wartością skrótu w bazie danych użytkownika.

 4
Author: Kage,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-24 13:49:06

MD5 jest uważany za uszkodzony, nie dlatego, że możesz odzyskać oryginalną zawartość z hasha, ale dlatego, że dzięki pracy możesz stworzyć dwa komunikaty, które hashują do tego samego hasha.

Nie można usunąć hash MD5.

 3
Author: Ned Batchelder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-06 19:28:56

Jedyną rzeczą, która może być praca jest (jeśli wspomnimy, że hasła są po prostu haszowane, bez dodawania jakiegokolwiek rodzaju soli, aby zapobiec atakom powtórek, jeśli tak jest, musisz znać salt)przy okazji, uzyskać narzędzie ataku słownika, pliki wielu słów, liczb itp. następnie utwórz dwa wiersze, jeden wiersz to słowo, numer (w słowniku) drugi to hash słowa i porównaj skróty, jeśli dopasujesz go...

To jedyny sposób, bez wchodzenia w kryptoanalizę.

 2
Author: berkay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-06 17:02:33

Tak, dokładnie to, o co prosisz, jest możliwe. Nie można "odszyfrować" hasła MD5 bez pomocy, ale można ponownie zaszyfrować Hasło MD5 do innego algorytmu, tylko nie wszystko za jednym razem.

To, co robisz, to zorganizowanie, aby użytkownicy mogli zalogować się do nowego systemu przy użyciu starego hasła MD5. W momencie logowania podali twojemu programowi logowania wersję unhashed hasła, które udowodnisz, że pasuje do twojego hasha MD5. Ty następnie można przekonwertować to hasło do nowego algorytmu haszującego.

Oczywiście jest to rozszerzony proces, ponieważ musisz poczekać, aż użytkownicy powiedzą ci, jakie są hasła, ale to działa.

(NB: siedem lat później, mam nadzieję, że komuś się przyda)

 2
Author: user3710044,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-14 01:12:39

Możesz znaleźć narzędzia online, które używają słownika do pobierania oryginalnej wiadomości.

W niektórych przypadkach metoda słownikowa może być po prostu bezużyteczna:

  • Jeśli wiadomość jest zahaszowana za pomocą wiadomości SALT
  • Jeśli wiadomość jest hash więcej niż jeden raz

Na przykład, oto jeden MD5 decrypter narzędzie online.

 2
Author: davitz38,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-19 10:31:33

Nie, Nie da się tego zrobić. Albo możesz użyć słownika, albo możesz spróbować hashować różne wartości, aż otrzymasz szukany hash. Ale nie można go "odszyfrować".

 1
Author: Vilx-,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-06 19:28:34

MD5 ma swoje słabe strony (Zobacz Wikipedia), więc istnieją pewne projekty, które próbują wstępnie obliczyć Hasze. Wikipedia podpowiada również niektóre z tych projektów. Jeden, którego znam (i szanuję) to ophrack. Nie możesz powiedzieć użytkownikowi własnego hasła, ale możesz być w stanie powiedzieć mu hasło, które działa. Ale myślę, że: wystarczy wysłać thrm nowe hasło w przypadku zapomnienia.

 1
Author: dz.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-24 13:52:47

Algorytm skrótu MD5 nie jest odwracalny, więc dekodowanie MD5 nie jest możliwe, ale niektóre strony mają zbiorczy zestaw pasujących haseł, więc możesz spróbować online dekodować hash MD5.

Spróbuj online:

MD5 Decrypt

Md5online

Md5decrypter

 1
Author: Girish Patidar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-04 05:57:16

W teorii nie jest możliwe odszyfrowanie wartości skrótu, ale masz kilka brudnych technik odzyskiwania oryginalnego zwykłego tekstu.

  1. Bruteforcing : wszystkie algorytmy bezpieczeństwa komputera cierpiąbruteforcing . Bazując na tym pomyśle, dzisiejsze GPU wykorzystują ideę programowania równoległego, za pomocą którego może odzyskać zwykły tekst, masowo bruteforcing go za pomocą dowolnego procesora graficznego. To narzędzie hashcat robi to zadanie. Ostatnio sprawdzałem cuda Wersja, byłem w stanie bruteforce 7 liter długi znak w ciągu sześciu minut.
  2. Internet search : po prostu skopiuj i wklej hash w Google i sprawdź, czy możesz znaleźć odpowiedni tekst jawny. Nie jest to rozwiązanie, gdy coś testujesz, ale zdecydowanie warto spróbować. Niektóre strony internetowe utrzymują hash dla prawie wszystkich słów w słowniku.
 1
Author: vikkyhacks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-18 21:49:55

Nie, Nie jest możliwe odwrócenie funkcji skrótu, takiej jak MD5: biorąc pod uwagę wyjściową wartość skrótu, niemożliwe jest znalezienie wiadomości wejściowej, chyba że znana jest wystarczająca ilość informacji o wiadomości wejściowej.

Deszyfrowanie nie jest funkcją zdefiniowaną dla funkcji haszującej; szyfrowanie i deszyfrowanie są funkcjami szyfru , takimi jak AES w trybie CBC; funkcje haszujące Nie szyfrują ani odszyfrowują . funkcje Hash są używane do digest wejścia wiadomość. Jak sama nazwa wskazuje, nie ma możliwego odwrotnego algorytmu według projektu.


MD5 został zaprojektowany jako kryptograficznie bezpieczna, jednokierunkowa funkcja skrótu. Teraz łatwo jest wygenerować kolizje dla MD5 - nawet jeśli duża część wiadomości wejściowej jest wstępnie określona. Tak więc MD5 jest oficjalnie złamany i MD5 nie powinien być już uważany za kryptograficznie Bezpieczny hash. Jednak nadal nie można znaleźć wiadomości wejściowej, która prowadzi do skrótu wartość: Znajdź X, gdy znana jest tylko H (X) (A X nie ma wstępnie obliczonej struktury z co najmniej jednym 128-bajtowym blokiem wstępnie obliczonych danych). Nie ma żadnych znanych ataków przed obrazem przeciwko MD5.

Ogólnie możliwe jest również odgadywanie haseł za pomocą brutalnej siły lub (rozszerzonych) ataków słownikowych, porównywanie baz danych lub wyszukiwanie hashów haseł w tzw. tęczowych tabelach. Jeśli dopasowanie zostanie znalezione, jest obliczeniowo pewne, że dane wejściowe zostały znalezione. Hash funkcje są również zabezpieczone przed atakami kolizyjnymi: znalezienie X' tak, aby H(X') = H(X) dało H(X). Jeśli więc X zostanie znaleziona, jest to obliczeniowo pewne, że rzeczywiście była to wiadomość wejściowa. W przeciwnym razie wykonałbyś atak kolizji. Rainbow tables mogą być używane do przyspieszenia ataków i istnieją wyspecjalizowane zasoby internetowe, które pomogą Ci znaleźć hasło o określonym haszu.

Jest oczywiście możliwe ponowne użycie wartości hash H(X) na zweryfikuj hasła wygenerowane na innych systemach. Jedyną rzeczą, którą musi zrobić system odbierający, jest zapisanie wyniku deterministycznej funkcji F, która przyjmuje H(X) jako dane wejściowe. Gdy X jest podane do systemu, to H(X) i dlatego F można ponownie obliczyć i wyniki można porównać. Innymi słowy, to nie jest wymagane , aby odszyfrować wartość skrótu, aby po prostu zweryfikować , czy hasło jest poprawne, i nadal można przechowywać hash jako inny wartość.


Zamiast MD5 ważne jest użycie password hash lub pbkdf (password based key derivation function). Taka funkcja określa jak używać salt razem z hash. W ten sposób identyczne hashe nie będą generowane dla identycznych haseł (od innych użytkowników lub w innych bazach danych). Hashe haseł z tego powodu również nie pozwalają na używanie tabel rainbow, o ile sól jest wystarczająco duża i odpowiednio randomizowana.

Hashe haseł zawierają również czynnik roboczy (czasami skonfigurowany przy użyciu liczby iteracji ), który może znacznie spowolnić ataki próbujące znaleźć hasło, biorąc pod uwagę wartość salt i hash. Jest to ważne, ponieważ baza danych z solami i wartościami hash może zostać skradziona. Na koniec, hash hasła może być również z twardą pamięcią , więc do obliczenia hasha wymagana jest znaczna ilość pamięci. Uniemożliwia to użycie specjalnego sprzętu (GPU, ASIC, FPGA itp.), aby umożliwić atakującemu przyspieszenie wyszukiwania. Inne wejścia lub opcje konfiguracyjne, takie jak pepper lub ilość równoległości mogą być również dostępne dla hash hasła.

Pozwoli jednak każdemu zweryfikować hasło podane H(X), nawet jeśli H(X) jest Hashem hasła. Hashe haseł są nadal deterministyczne, więc jeśli ktoś zna wszystkie dane wejściowe i sam algorytm hashowania, to X można użyć do obliczenia H(X) i - znowu-wyników można porównać.

Powszechnie używanymi hashami haseł są bcrypt, scrypt i PBKDF2. Istnieje również Argon2 w różnych formach, który jest zwycięzcą dość niedawnego konkursu hashowania haseł. tutaj na CrackStation jest dobry post na blogu o prawidłowym zabezpieczeniu hasła.


Możliwe jest uniemożliwienie przeciwnikom wykonania obliczenia hashowego sprawdzenia, czy hasło jest poprawne. Do tego pieprz może być używany jako wejście do hash hasła. Alternatywnie, wartość hash może być oczywiście zaszyfrowana za pomocą szyfru, takiego jak AES i sposobu działania, takiego jak CBC lub GCM. Wymaga to jednak przechowywania tajnego klucza niezależnie i z wyższymi wymaganiami dostępu niż hash hasła.

 1
Author: Maarten Bodewes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-19 11:30:31

Nie jest jeszcze możliwe wprowadzenie hasha hasła do algorytmu i uzyskanie hasła z powrotem w postaci zwykłego tekstu, ponieważ hashowanie jest rzeczą jednokierunkową. Ale ludzie zrobili to, aby wygenerować hash i przechowywać go w dużej tabeli tak, że po wprowadzeniu konkretnego hash, sprawdza tabelę pod kątem hasła, które pasuje do hash i zwraca to hasło do ciebie. Przykład strony, która to robi to http://www.md5online.org /. Nowoczesny system przechowywania haseł przeciwdziała temu za pomocą algorytm zasolenia taki, że po wprowadzeniu tego samego hasła do pola hasła podczas rejestracji generowane są różne skróty.

 -1
Author: Ogbe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-12 14:48:07

Nie, Nie można odszyfrować/odwrócić md5, ponieważ jest to szyfrowanie jednokierunkowe. ale niektóre strony internetowe mają dużą ilość bazy danych haseł, więc możesz spróbować online dekodować swój łańcuch skrótu MD5 lub SHA1. Próbowałem strony Jak http://www.mycodemyway.com/encrypt-and-decrypt/md5 i działa dobrze dla mnie, ale to całkowicie zależy od Twojego hasha jeśli ten hash jest przechowywany w tej bazie danych, możesz uzyskać rzeczywisty ciąg znaków.

 -1
Author: Rafi Ahmad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-05 09:12:24