2010-12-13 11 views
5

Mam wpis do bazy danych dla hasła w formacie md5, ale kiedy użytkownik korzysta z "Nie pamiętam hasła", w jaki sposób mogę mu podać żądane hasło?Mam zaszyfrowane hasło md5, jak przekazać hasło użytkownikowi, gdy używa "Nie pamiętasz hasła"?

+1

Oblig. nitpick: funkcja MD5 to * hashuj * - informacja jest tracona z wyniku, oryginalne dane nie są odzyskiwane. Dzięki * szyfrowaniu * OTOH oryginalne dane można odzyskać przy użyciu właściwego klucza. – Piskvor

+0

możliwy duplikat [Czy możliwe jest odszyfrowanie skrótów md5?] (Http://stackoverflow.com/questions/1240852/is-it-possible-to-decrypt-md5-hashes) –

Odpowiedz

12

Nie można tego zrobić za pomocą skrótu MD5; ani nie powinieneś. Odzyskiwanie hasła powinno być trudne.

Zazwyczaj wysyła się token resetowania hasła (URL) na jego adres e-mail, aby umożliwić użytkownikowi wybór nowego hasła.

+0

dzięki @Marcelo Cantos –

2

Nie można tego zrobić bez wpisania hasła w bazie danych, co jest niepożądane, ale można wygenerować mu nowe hasło i wysłać je do niego. Lub link, w którym mogą zresetować swoje hasło.

1

Masz 1/100 szans na odzyskanie tego hasła (metoda słownikowa) ze względu na długość hasła. Nie polecę tego.

Lepiej wygenerować nowe losowe hasło i wysłać je na adres e-mail użytkownika.

+0

Znacznie mniej niż 1/100, w rzeczywistości - to jest cały punkt mieszania: prosty i szybki w jedną stronę (dane do hasza), skomplikowany i bardzo powolny (jak w "prawie niemożliwe, gdy jest to zrobione dobrze") w innym kierunku (skrót do danych). – Piskvor

+0

@Piskvor w rzeczywistości to tylko moja ocena. : P to zależy od użytego słownika. – Ruel

+0

Jeśli uzyskujesz współczynnik odzysku 1/100. Masz strasznie niebezpieczny system. W rzeczywistości można przetestować własny system pod kątem szybkości odzyskiwania za pomocą różnych md5 de/encoderów. Strzelaj, aby odzyskać 0%. http://www.md5decrypter.com/ – DampeS8N

2

musisz wysłać użytkownikowi new password, a następnie ustawić również w bazie danych. w przeciwnym razie oryginalne hasło może nie zostać odzyskane.

Dzięki.

3

Nie można - MD5 jest po prostu hashiem "jednokierunkowym" - nie jest środkiem do szyfrowania danych, które można później odszyfrować.

Jako takie, ogólna idea jest:

  1. wysłać użytkownikowi e-mail do ich rejestracji adres z linkiem resetowania w nim. (Aby udowodnić, że rzeczywiście właścicielem adresu). Łącze Reset powinien zawierać skrót oparciu o pewnym aspekcie ich specyficznych danych użytkownika, więc nie można łatwo domyślić, itd. (Np czas utworzenia konta.)

  2. Kiedy użytkownik kliknie link, który wyląduje na stronie resetowania hasła, która sprawdza powyższy hash, generuje nowe hasło (najlepiej połączenie górnego/dolnego i niektórych znaków numerycznych, chociaż zawsze staram się pomijać takie znaki jak "0", " o ',' O ', itp. dla jasności), a następnie wysyła użytkownikowi nowe hasło w wiadomości e-mail, doradzając im, że powinni zmienić to hasło tak szybko, jak to możliwe.

Użytkownik może następnie zalogować się i uzyskać dostęp do strony jak zwykle.

+0

Po prostu pominąłem drugi e-mail wysyłając nowe hasło. Pozwól użytkownikowi zmienić hasło bezpośrednio z tego linku. – Danosaure

Powiązane problemy