Gå til innhold

Hvordan dekryptere MD5


Anbefalte innlegg

Videoannonse
Annonse

MD5 er en-veis hashing, ikke bare en tung kryptering som kan dekrypteres.

Det eneste du kan gjøre er å bruteforce MD5-hashen, men det vil fort ta en stund.

 

edit: les og lær på Open Source Institute (X): The Mysterious MD5 Algorithm

edit²: her har du en kilde til... og en OSIX geek challenge om å bruteforce et dualMD5hashet passord...

 

Det faktum at folk ovenfor har klart det beviser enten at det er en lureoppgave eller at det er mulig å klare det uten FOR mye bry på enkle passord... jeg velger å tro på sistnevnte..

Endret av Zethyr
Lenke til kommentar

Dette ble diskutert for et par måneder siden i en tråd her i PHP foumet, søk litt så finner dere sikkert igjen tråden - der finnes det vel også et eksempel på bruteforce.

 

Spesialtegn gjør ikke passordet særlig bedre, en effekt har det - men siden det finnes så mange rainbow tables ol. som finner md5 så er ikke det så mye bedre. Siden nesten alle bruteforce begynner med et (eller et lavt antall tegn) og legger til et nytt tegn etter hvert er det mye bedre å lage et langt passord.

 

Det er mulig å knekke passord med "vanlige tegn" uten for mye bry, og til dem så tenker på det, nei vi vil ikke se noe kildekode som gjør jobben her.

Dette synes jeg er en litt rar holdning - alle som kan litt PHP klarer å skrive en enkel bruteforce. Er det ikke bedre at alle får se hvor enkelt det er slik at de skjønner at det ikke er en trygg streng som returneres? I tillegg så er dette et forum der brukerne er den viktigste delen - bruteforce er ikke hacking. For å få tilgang til md5 stringene må en som regel hacke seg tilgang til en database. De fleste som klarer dette trenger neppe å spørre etter hjelp på et PHP forum for å snu strengene.

 

Hvordan kan du mene at en kommentar som får stå i kommentarene til PHP manualen ikke passer her?

Endret av ????????
Lenke til kommentar

brukere har tidligere lagt ut kildekode for knekking av md5 passord her og dem har blitt slettet, php.net har ingenting å si for hva vi vil ha her ;)

 

Cracker tillater vi heller ikke her selv om det i seg selv ikke er ulovlig (man må jo laste det ned for å kunne bruke cracken..)

 

edit: en diskusjon om saken for å finne standpunkt i saken vil nok komme opp internt ganske raskt.

Lenke til kommentar

I den grad det har noe å si for sakens utfall så må jeg si meg enig i ??????? her... Virker litt rart det standpunktet.

 

Hvis det ikke skyldes noe annet enn den ordrette koblingen til deres ikke-crackerstandpunkt (husk forskjell på hacker og cracker), så anser jeg det selv som et resultat av uvitenhet.

 

Ellers vil jeg si at det er entydig positivt og de-mystifisere md5, cryptering og hacking generelt, bl.a. ved å opplyse om styrker og svakheter.

 

Det å nekte folk å vise hvordan man setter sammen et par forløkker el. for å iterere seg over bokstav-tall kombinasjoner ser jeg ikke som noe bidrag til å stoppe ulovlig aktivitet.

Lenke til kommentar
  • 1 år senere...
i php5.1 så har man vel flere muligheter enn bare å bruke md5, sha256 var vel kanskje anbefalt?

 

md5 er så mye brukt, at man kan godt gå over til noe mer innfløkt i disse dager.

 

... men md5 er helt grei til tøyselogin systemer som ikke inneholder så mye rart.

6730100[/snapback]

sha256? Er det implementert i PHP5.1? Mente bare sha1/160 er implementert jeg.

 

Når det er sagt, hvorfor er md5 så negativt? Det fungerer fett så lenge man har litt lengde på ting (dvs. 8 eller flere tegn). Samme gjelder sha1.

Lenke til kommentar
i php5.1 så har man vel flere muligheter enn bare å bruke md5, sha256 var vel kanskje anbefalt?

 

md5 er så mye brukt, at man kan godt gå over til noe mer innfløkt i disse dager.

 

... men md5 er helt grei til tøyselogin systemer som ikke inneholder så mye rart.

6730100[/snapback]

 

 

SHA256 er like sårbart som md5 når det gjelder bruteforce, ordbok eller oppslag i forhåndsgenererte databaser.

 

Svakhetene i md5 har heller minimalt å si når det gjelder lagring av passord. Eneste grunnen til at man lagrer passord i md5 hash og ikke i klartekst er å skjule passordet dersom en angriper skulle få tilgang til databasen. Om det er md5 hash eller sha256 hash spiller fint liten rolle. Det eneste er at det er lettere å få tak i md5 rainbowtables.

 

sha256 er tilgjengleig gjennom hash() som er en del av en PECL modul, som er aktivert som standard etter php 5.1.2 om jeg ikke husker helt feil.

Lenke til kommentar
i php5.1 så har man vel flere muligheter enn bare å bruke md5, sha256 var vel kanskje anbefalt?

 

md5 er så mye brukt, at man kan godt gå over til noe mer innfløkt i disse dager.

 

... men md5 er helt grei til tøyselogin systemer som ikke inneholder så mye rart.

6730100[/snapback]

 

 

SHA256 er like sårbart som md5 når det gjelder bruteforce, ordbok eller oppslag i forhåndsgenererte databaser.

 

6730742[/snapback]

Problemet er at i md5 kan du finne kollisjonar, dvs to ulike stringer som gir samme hash _uten_ å prøve deg fram, kun ved å regne ut... Det er ei svakhet. Neppe alvorleg, men den er til stades.

Lenke til kommentar
Problemet er at i md5 kan du finne kollisjonar, dvs to ulike stringer som gir samme hash _uten_ å prøve deg fram, kun ved å regne ut... Det er ei svakhet. Neppe alvorleg, men den er til stades.

6734178[/snapback]

Kilde/Bevis?

Vet man kan få to like strenger, men trodde ikke dette gikk an matematisk?

Lenke til kommentar
Problemet er at i md5 kan du finne kollisjonar, dvs to ulike stringer som gir samme hash _uten_ å prøve deg fram, kun ved å regne ut... Det er ei svakhet. Neppe alvorleg, men den er til stades.

6734178[/snapback]

Kilde/Bevis?

Vet man kan få to like strenger, men trodde ikke dette gikk an matematisk?

6734205[/snapback]

 

En kinesisk cracker gruppe som fant det ut for noen år siden (Mener og huske det). Tar uansett veldig lang tid fordet.

Lenke til kommentar

Du kan ikkje rekne deg til "md5 collisions", men på grunn av at md5 bare har x antall mulige kombinasjoner (husker ikkje antallet i hode akkuratt nå) så er det ein 0.00001% (noko slikt, i.e. veldig liten) sjanse for at to "md5" strenger kan være like uansett om dei er laget fra forskjellige kilder.

 

Men såfremt du bruker salt når du lager md5 stringen, så hjelper ikkje ein "md5 collision". Siden du må ha den opprinnelige "kilden" (før saltet legges til) for å kunne logge deg inn i systemet.

 

Altså med andre ord, så lenge du bruker eit godt salt så er md5 ennå mesten "umuligt" å bruteforce. MEN vist du bruker eit passord på 4 bokstaver og eit salt på 5 så er det "bruteforced" på eit par min. I.e. pass på at saltet iallefall er på 100 tall/bokstaver/symbol.

Lenke til kommentar
Du kan ikkje rekne deg til "md5 collisions", men på grunn av at md5 bare har x antall mulige kombinasjoner (husker ikkje antallet i hode akkuratt nå) så er det ein 0.00001% (noko slikt, i.e. veldig liten) sjanse for at to "md5" strenger kan være like uansett om dei er laget fra forskjellige kilder.

 

Men såfremt du bruker salt når du lager md5 stringen, så hjelper ikkje ein "md5 collision". Siden du må ha den opprinnelige "kilden" (før saltet legges til) for å kunne logge deg inn i systemet.

 

Altså med andre ord, så lenge du bruker eit godt salt så er md5 ennå mesten "umuligt" å bruteforce. MEN vist du bruker eit passord på 4 bokstaver og eit salt på 5 så er det "bruteforced" på eit par min. I.e. pass på at saltet iallefall er på 100 tall/bokstaver/symbol.

6755121[/snapback]

md5 har 2^128 muligheter (128bits hash). Salting løyser problemet ja.

 

Jo, du kan rekne deg fram til ein kollisjon. Det er da det er en kollisjon. *ALLE* hasher har visse inputter som vil gi samme resultat. Ellers ville du hatt uendeleg god komprimeringsalgoritme...;) MD5 har 2^128 mulige kombinasjoner. Dersom du da har meir enn 2^128 bit data, *vil* du alltid finne to datamengder som gir samme sum. Problemet med md5 er at du kan finne det uten å måtte utføre uttømmande angrep (brute force) AFAIK.

SHA2 *må* også gi samme resultat for to ulike strenger > 256bit.

 

Sjå t.d http://en.wikipedia.org/wiki/MD5 og http://en.wikipedia.org/wiki/Cryptographic_hash_function samt søk etter md5 collision

Lenke til kommentar

PHP (Utestet):

 

function Stians_sha1(&$string, &$salt, $fixed_len = 0)
{
$salt = '';
$len = strlen($string);
if($len < 50)
{
  $split = str_split($string, 50);
  $string = '';
  for($i=0;$i<=count($split);$i++) $string += sha1($split[$i]);
}
else $string = sha1($string);

 if($fixed_len && $strlen($string) < $fixed_len)
 {
   $chars = array( 'a', 'b', 'c', 'd', 'e', 'f', 0, 1,2,3,4,5,6,7,8,9);
   $charsl = count($chars)-1;
   while(strlen($string) != $fixed_len)
   {
      $this_char = $chars[mt_rand(0, $charsl)];
      $salt += $this_char
      $string += $this_char
   }
 }
 elseif($fixed_len && $strlen($string) > $fixed_len)
 {
   $split = str_split($string, $fixed_len);
   $string = $split[0];
 }
}

 

Skal virke Slik

$string = "Password_efafkfkasfafafafasdasd";

$salt = ''; // Ikke set denne til noe

Stians_sha1($string, $salt);

 

EDIT: fixed len for høyere tall.

Endret av hotstian
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...