Problema criptazione password
Problema criptazione password postato il 07/07/2010 13:44:58 nel forum programmazione, open source e hosting
Salve a tutti so che sono molto snervante con queste domande sciocche ma avrei bisogno di una mano per la criptazione della password in md5
sembra che nel database venga criptata ma quando provo a loggare mi esce che la password non è corretta
premetto che non uso nessun os e di seguito vi rilascio i codici che sono interessati :)
questa è la query che mi cripta la password nel database
$Query = "INSERT into $TableName values ('$Array[Nome]', '$Array[Cognome]', md5('$Array[Password]'),'$Array[Sesso]', '$Array[Talenti]', '$Array[Talenti2]', '$Array[Talenti3]', '$Array[Forza]', '$Array[Percezione]', '$Array[Resistenza]', '$Array[Carisma]', '$Array[Intelligenza]', '$Array[Agilità]', '$Array[Fortuna]', '$Array[Email]', '$Array[Background]')";
print ("<center>L' Iscrizione è stata eseguita con sucesso.</center>");
questa è invece la pagina del login
$myusername=$_POST['nome'];
$mypassword=$_POST['pwd'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE Nome='$myusername' and Password=md5('$mypassword')";
sperò di essere stato chiaro e ringrazio in anticipo per l' aiuto :D
Pagine → 1
07/07/2010 14:09:09
Fatti stampare la seconda query e vedi che valore assegna a quella psw... poi confronta che sia la stessa messa nel database...
07/07/2010 16:19:47
Togli stripslashes e mysql real escape string nella seconda pagina per il filtraggio della password, assegnale direttamente md5() da php e la usi per il raffronto.
$pass = md5($_POST['pws']);
.... WHERE password = '$pass'
Questo perchè se le funzioni prima citate modificano anche solo una virgola nel contenuto della variabile della password inviata dall'utente è normale che l'hash non corrisponda.
ps: usa hash piu' decenti, come sha256/512.
07/07/2010 20:50:13
blancks ha scritto: Togli stripslashes e mysql real escape string nella seconda pagina per il filtraggio della password, assegnale direttamente md5() da php e la usi per il raffronto.
$pass = md5($_POST['pws']);
.... WHERE password = '$pass'
Questo perchè se le funzioni prima citate modificano anche solo una virgola nel contenuto della variabile della password inviata dall'utente è normale che l'hash non corrisponda.
ps: usa hash piu' decenti, come sha256/512.
ti ringrazio lo faccio subito :D
07/07/2010 21:07:12
Nulla non funziona ti faccio vedere il codice aggiornato
$username=$_POST['nome'];
$pass=md5($_POST['pwd']);
$sql="SELECT * FROM $tbl_name WHERE Nome='$username' and Password='$pass'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
session_register("username");
session_register("pass");
header("location:login_success.php");
}
else {
echo "<center>Nome o Password non corretti</center>";
}
07/07/2010 22:16:48
_sway_ ha scritto: Fatti stampare la seconda query e vedi che valore assegna a quella psw... poi confronta che sia la stessa messa nel database...
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Crossout ↗
Tiles Survive ↗
Tibia ↗
World of Warship ↗
Imperion ↗