Gå til innhold

Hvordan får man til "glemt passordet" greier?


Anbefalte innlegg

Videoannonse
Annonse

Det er litt av cluet med md5 - det går ikke an å få noe brukbart ut av en md5-kryptert string.

 

Løsningen blir da å nullstille passordet (overskrive) med et nytt ett...

 

 

 

PS! Det skal nevnes at det ikke er 100% umulig å få noe ut av en md5-kryptert string.. Du kan bruke rå makt og bare kjøre en loop som genererer en tilfeldig string helt til md5-versjonen av den stringen == md5-passordet.. Men dette tar tid..

Lenke til kommentar
PS! Det skal nevnes at det ikke er 100% umulig å få noe ut av en md5-kryptert string.. Du kan bruke rå makt og bare kjøre en loop som genererer en tilfeldig string helt til md5-versjonen av den stringen == md5-passordet.. Men dette tar tid..

Jo, det er 100% umulig i den forstand at man aldri kan vite med 100% sikkerhet hva som egentlig stod i den md5-hashete stringen.

 

Md5 er det man kaller en enveis-algoritme, altså den lager en hash ut i fra en streng. Siden MD5 begrenser seg til 32 tegn, vil man altså ikke kunne lage en unik hash for alle forskjellige strengverdier. Med andre ord kan to helt forskjellige strengverdier gi samme hash-resultat, og vil derfor bli oppfattet som like.

 

Poenget er at om man hasher "dette er et passord", kan det godt være strengen "et annet ord" har samme hash-verdi. Når man da bruteforcer passordet (systematisk finner en hash som matcher) og finner en strengverdi som stemmer i forhold til md5-hashen, betyr det ikke nødvendigvis at brukeren valgte den stringen bruteforce-programmet fant ut av som passord da han opprettet brukeren. Likevel vil det bli oppfattet som det samme passordet.

Lenke til kommentar

Med andre ord kan to helt forskjellige strengverdier gi samme hash-resultat, og vil derfor bli oppfattet som like.

 

in case md5( ) returns the same result twice (a one in 3.4028236692093846346337460743177e+38 probability), you can wrap it in a while loop.

 

Sjangsen er altså 1 til 160 658 516 530 402 676 721,182 for at du vil få den samme strengen. Vil tro at du med grei sannsynlighet vil kunne klare å brute-force en md5-streng. ;)

 

UANSETT: Bruteforcing av en 32-bokstavers md5-streng vil ta så lang tid at du for lengs vil nå timeout for hvor lang tid PHP får kjøre. Generer heller et tilfeldig passord til brukeren, som kan brukes til å logge seg inn med og deretter endre.

Endret av jorgis
Lenke til kommentar
Hvis du har tenkt å la serveren kjøre i et par timer for hvert passord som skal "gjenopprettes", greit for meg. :roll:

Vil det ikke heller være snakk om måneder eller år? Bare forestiller meg at hvis det var et par timer, så ville det være litt for lett til at det var sikkert....

 

Selvfølgelig kommer det jo også ann på serveren....

Lenke til kommentar

Vel, at det tar timer er å overdrive. Skrev et lite script som ved hjelp av bruteforce greide å knekke 4 bokstavers ord kryptert med md5. Tok langt under de 30sek. Eneste problemet er at den bare greier å knekke ordet inneholder bokstaver... så lang tid tar det ikke, men resurskrevende er det. Beste løsning er som noen har sagt her, generer et nytt passord.

Endret av Atpn
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...