Gå til innhold

dekryptering av MD5 passord fra mySQL


Anbefalte innlegg

Hei.

Jeg holder på å lage et partysys og har akkurat fått til å kryptere passordene som sendes til min mySQL-database.

 

Nå lurer jeg på om det er en måte å dekryptere disse passordene, så de kan leses i forståelig format, slik at hvis noen glemmer passordene, så kan jeg sende det til dem?

Lenke til kommentar
Videoannonse
Annonse

hvis det hadde gått ann så hadde jo hele vitsen vært borte....

meningen med md5 er at det skal være sikkert..

du må enten lage en egen krypteringsmetode og dekrypteringsmetode eller så tror jeg kanskje det finnes andre krypteringsfunksjoner som blir bygd opp slik at det er mulig å dekryptere dem igjen :hmm:

Lenke til kommentar

For å sitere Torbjørn under en lignende debatt tidligere: Om jeg kunne få det samme passordet tilsendt på epost hvis jeg glemte det, så hadde jeg ikke blitt medlem på siden :-)

 

 

edit: trikset er å generere et nytt passord du sender på epost hvis noen glemmer det.

Endret av fjartan
Lenke til kommentar

Ah... i dag er jeg skikkelig julenisse! :xmas:

 

 

$epost = $_POST['epost'];
$query = mysql_query("SELECT * FROM brukere WHERE epost = '".$epost."'");
$null = "0";
while ($null < mysql_numrows($query)) {
$id = mysql_result($query,$null,"id");


$pass = "";
$chars = array(
 "1","2","3","4","5","6","7","8","9","0",
 "a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J",
 "k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T",
 "u","U","v","V","w","W","x","X","y","Y","z","Z","_","-");

$count = count($chars) - 1;

for($i = 0; $i < 8; $i++) { // her blir det 8 tegn i passordet
 $pass .= $chars[rand(0, $count)];
}

mysql_query("UPDATE brukere SET passordhash = '".md5($pass)."' WHERE id = '".$id."' AND epost = '".$epost."' LIMIT 1");

mail("$epost","Nytt passord","NYTT PASSORD\n\nDu kan nå logge inn med dette passordet: $pass.\n",     "From: [email protected]\r\nReply-To: [email protected]\r\nX-Mailer: PHP/" . phpversion());

$null++;
}

 

Skulle tro den fungerer :-)

Lenke til kommentar
*masse kode*

du trenger ikke å skrive opp hele arrayet fra 0-9, a-z osv...

du kan også gjøre det mye enklere slik:

$chars = array_merge( // Rams opp alle tegnene det skal trekkes fra 
 range('a', 'z'), // a-z, små bokstaver 
 range('A', 'Z'), // A-Z, store bokstaver 
 range('0', '9'), // 0-9, tall 
 array('æ', 'ø', 'å', '_', '-') // spesialtegn 
);

 

da vil du få dette arrayet i $chars

$chars = array(
"1","2","3","4","5","6","7","8","9","0",
"a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J",
"k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T",
"u","U","v","V","w","W","x","X","y","Y","z","Z","_","æ","ø","å","-");

Lenke til kommentar
Ah... i dag er jeg skikkelig julenisse!  :xmas:

 

 

$epost = $_POST['epost'];
$query = mysql_query("SELECT * FROM brukere WHERE epost = '".$epost."'");
$null = "0";
while ($null < mysql_numrows($query)) {
$id = mysql_result($query,$null,"id");


$pass = "";
$chars = array(
 "1","2","3","4","5","6","7","8","9","0",
 "a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J",
 "k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T",
 "u","U","v","V","w","W","x","X","y","Y","z","Z","_","-");

$count = count($chars) - 1;

for($i = 0; $i < 8; $i++) { // her blir det 8 tegn i passordet
 $pass .= $chars[rand(0, $count)];
}

$salt = "";
for($i = 0; $i < 8; $i++) { // sikkert greit med 8 tegn til salt også-> ~48-bit.
 $salt .= $chars[rand(0, $count)];
}

mysql_query("UPDATE brukere SET passordhash = '".md5($salt . $pass)."', salt = '".$salt."' WHERE id = '".$id."' AND epost = '".$epost."' LIMIT 1");

mail("$epost","Nytt passord","NYTT PASSORD\n\nDu kan nå logge inn med dette passordet: $pass.\n",     "From: [email protected]\r\nReply-To: [email protected]\r\nX-Mailer: PHP/" . phpversion());

$null++;
}

 

Skulle tro den fungerer :-)

*er :xmas:'s lille hjelper*

Lenke til kommentar

Fikk nesten lyst til å svare "HAHA HAHAHA HAHAHAHA" osv et par linjer når jeg såg første innlegg ;)

 

Men, som sagt, hvis man enkelt kan finne tilbake til originale passordet så er hele vitsen med md5 vekke, da kunne man like gjerne lagret passordet i klartekst..

Lenke til kommentar

det kommer vel egentlig veldig ann på hvem som har nøkkelen og hvor god kryptering man klarer å lage...

 

det finnes jo faktisk eksempler på situasjoner i det virkelige liv der man trenger å både kryptere og dekryptere informasjon.

Endret av fjartan
Lenke til kommentar

Vel, uten å påberope meg spesiell kunnskap må jeg vel kunne tro at for å overbringe informasjon må mottager kunne dekryptere. I passordsammenheng sammenligner man to krypteringer, men om man for eksempel skal overlevere informasjonen "jeg er tøff", så nytter det vel ikke å gjette seg frem?

 

Enigma var vel en krypteringsmaskin som lagde en kode som ble dekryptert via sifferbaserte kodebøker?

Endret av fjartan
Lenke til kommentar
det kommer vel egentlig veldig ann på hvem som har nøkkelen og hvor god kryptering man klarer å lage...

 

det finnes jo faktisk eksempler på situasjoner i det virkelige liv der man trenger å både kryptere og dekryptere informasjon.

jaha....

gi et eksempel...

SSL f.eks. Nettbanker, serveradministrasjon, paypal, og andre. kryptering og dekryptering mellom klient og server.

Lenke til kommentar
det kommer vel egentlig veldig ann på hvem som har nøkkelen og hvor god kryptering man klarer å lage...

 

det finnes jo faktisk eksempler på situasjoner i det virkelige liv der man trenger å både kryptere og dekryptere informasjon.

Ja, men passord faller ikke innom den kategorien..

 

"Ambulanser som rykker ut må kjøre fort, så dermed må jeg få kjøre fort og!" - Slående logikk

 

 

EDIT: Hvis programmet skal kunne dekryptere, så må det vite hvordan. Og jeg antar at en person som klarer å få passordene, klarer å få sett programmet og...

Endret av Terrasque
Lenke til kommentar

Øh... synes ikke det var logisk i hele tatt. Poenget mitt er hvertfall at om passordet jeg ikke oppgir når jeg logger meg inn på internett blir kryptert og sammenlignet med en allerede eksisterende kryptering, så mister jeg lysten til å oppgi passordet.

 

Kan jo nevne min første opplevelse av passord på internett; skulle registrere meg ett eller annet sted, og fylle ut følgende felter: Epost, brukernavn og passord. Dum som jeg var oppga jeg epostadressen min, brukernavnet til eposten min, og følgelig passordet til eposten min... Takk og pris for at det var en seriøs site som krypterte passordet :roll:

Lenke til kommentar

www.skolearena.no som brukes av mange utdanningsinstitusjoner i Norge lagrer også passordene i klartekst - de er i tillegg tilgjengelig for utvalgte ansatte ved den enkelte student/elevs studiested.

 

At mange andre er like dumme er ingen unnskyldning for selv å være dum.

 

MD5 er forresten ingen krypteringsalgoritme, det er en hasjfunksjon. (pass på så de narkomane ikke kommer og røyker passordet ditt :p )

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å
×
×
  • Opprett ny...