- Home
- Categorie
- Coding e Sistemistica
- PHP
- Criptare password con MD5 (con conferma password)
-
Appena prima di inserirla nel database...
$password=md5($password);
-
ho provato ma il problema è che dopo mi da errore di riscontro tra la password criptata e quella che metto in "conferma password". Se fosse solo da inserire la pass andrebbe bene...il problema che ho è quello del doppio inserimento password in "password" e in "conferma password".
Qualcuno sa darmi qualche dritta?
grazie mille
-
strsql="INSERT INTO table_name (password) VALUES(MD5('$password')) ";
controlla bene la posizione degli apici di md5, vado a memoria....
-
@danzur1981 said:
ho provato ma il problema è che dopo mi da errore di riscontro tra la password criptata e quella che metto in "conferma password".
Ho detto: appena prima di inserirla nel database!
-
Ok. Problema risolto. Grazie mille ad entrambi.
INSERT INTO utenti (nomeutente, cognomeutente, email, username, password) VALUES ('$nomeutente','$cognomeutente','$email','$username',MD5('$password')) ```. Adesso però ho un problema che non riesco a risolvere: nella pagina di login dove devo mettere il codice MD5? :? Posto la pagina:
$username = $_POST['username'];
$password = $_POST['password'];$result = mysql_query("SELECT * FROM utenti WHERE username='$username'"); if(mysql_num_rows($result) == 0) { echo "<br><br><br><br><br><p class='login'><b>$username</b> non esiste come utente registrato</p>"; echo "<p class='login'>Riprova ad inserire i dati alla pagina di <a href='login.php'>LOGIN</a></p>"; } else { $check = mysql_fetch_array($result); $user = $check['username']; $pass = $check['password']; if($username == $user && $password == $pass) { $_SESSION['username'] = "$username"; $_SESSION['password'] = "$password"; echo "<br><br><br><p class='login'>Login effettuato con successo<br></p>"; echo "<p class='login'>Benvenuto <b>$username</b><br></p>"; echo "<p class='login'>Adesso puoi accedere al contenuto della pagina privata dalla <a href='index.php'>homepage</a></p>"; } else { echo "<br><br><br><br><p class='login'>Password errata<br></p>"; echo "<p class='login'>Riprova ad inserire i dati alla pagina di <a href='login.php'>LOGIN</a></p>"; } }
Grazie mille dell'aiuto che mi state dando
-
ora che hai inserito la password criptata ti conviene scaricare una classe in php che gestisce il login dell'utente.
altrimenti diventa troppo complicato e non ne esci fuori facilmente
-
@danzur1981 said:
Adesso però ho un problema che non riesco a risolvere:
nella pagina di login dove devo mettere il codice MD5?
Ragiona!
Devi averlo bene in testa... analizza bene il problema.Adesso hai una tabella 'utenti' in cui sono memorizzati user e password (attenzione: la password non è memorizzata in chiaro bensì criptata).
Dal form del login arrivano due dati: user e password (in chiaro).
Non ti resta che 'trovare' nel database l'user e, una volta trovato, confrontare la sua password memorizzata con quella inserita nel login...Pensa bene: in che punto va criptata la password proveniente dal login?
-
dal form arriva la password in chiaro:
Es. prova
Sul DB hai qualcosa tipo
92j2h2h92h2g292j22j2j (in md5)
Devi confrontare i due dati, come fai?
-
Tutto risolto.
Avevo già pensato alla soluzione e ci avevo già provato prima ancora di chiedere nel forum:$username = $_POST['username']; $password = md5($_POST['password']);
ma purtroppo mi sono accorto solo ora che nella tabella utente avevo impostato come attributo del campo password una varchar(30) e l'MD5 cripta la password in una char(32). Mea culpa. Sorry!!!
Grazie a tutti cmq. Meglio dare consigli come avete fatto che dare la soluzione direttamente.
Al prossimo problema
-
@danzur1981 said:
Meglio dare consigli come avete fatto che dare la soluzione direttamente.
Credo che ragionare e capire sia molto meglio che ricevere la pappa pronta!
Tieni presente che se per caso decidi di utilizzare sha1() anzichè md5(), devi impostare 40 caratteri...Ciao.
-
Per sicurezza, io metterei un varchar(100) così se il contenuto è di 32, si setta in automatico a 32!