Ahoj vsichni,
mohl byste mi, prosim, prozradit, jak resite typickou proceduru a la "zapomneli jste heslo ?" ?
Mam na mysli nasledujici vec: uzivatel zapomene heslo, ktere je v db zasifrovane pomoci md5. Na strankach vyplni mail a ted je otazka, jak ziskat zpet puvodni NEZASIFROVANE heslo z db a poslat mu ho na mail.
Zatim jsem neresil desifrovani z MD5, jde to vubec nejak vyresit ?
Diky moc.
Johny
MD5 je postaveno tak, že to nemá jít rozlušit zpět (navíc existuje víc řetězců, které mají stejný md5).
Navrhuji toto řešení: Když někdo zapomene heslo, nechá si poslat mail. Ten bude obsahovat odkaz na tvůj web s identifikací účtu a nějakým vygenerovaným kódem (který se uloží i do databáze k účtu při posílání mailu). Jestliže na něj uživatel klikne, tak se účtu nastaví nějaké nové heslo, které se mu zobrazí nebo rovnou se ukáže formulář pro nastavení nového hesla.
stillet: "navíc existuje víc řetězců, které mají stejný md5"
vzhledem k tomu, že se md5 používá na hesla, tak toto ^ myslím není pravda. Nebo máš příklad?
V principu to tak musí být. Protože se může použít jako konktrolní součet u souborů (umí to i TC). MD5 hash má omezenou (danou) délku. Takže existuje určitý konečné počet různých hashů. Ale např. různých 5MB souborů je daleko víc. Takže se musí stát, že dva soubory mají stejný hash (zobrazení A->B, kde |A|>|B|, nemůže být prosté). Hesla jsou ale kratší než hash, takže pravděpobodnost je malá, ale nevidím důvod, proč by se to nemohlo stát.
Fakt to jde, četl jsem o tom. Zkus http://www.root.cz/clanky/utoky-na-digitalni-podpisy-pouzivajici-md5/
Jo, matematicky vzato to tak skutecne je. Proto je na hesla lepsi crypt se saltem.
Mas-li k te DB pristup, muzes nastavit nove heslo vlozenim jeho md5 otisku.
Nicméně to není řešení pro Johnyho pro běžné posílání zapomenutých hesel. Navíc jsem napsal "MD5 je postaveno tak, že to NEMÁ jít rozlušit zpět", možnost připouštím, jen to není úplně jednoduché.