Newsgroup: it.comp.www.php
Titolo: md5 e database

Salve :)
Volevo chiedervi una piccola (?) info :)
Sto faccendo un piccolissimo database con nome utente, password, email e
qualche altra cosina , volevo sapere se c'e' la "necessità" di usare la
funziona md5 (o qualsiasi altra funzione di crypt) sulle password che
verrano inserite nel db (uso mysql) o se posso tranquillamente lasciarle in
chiaro .. chiedo questo xchè provando a criptarle con md5 .. ho avuto
qualche problema al momento di confrontare la password immessa da form con
quella salvata ma se non ci son problemi di sicurezza le lascio in chiaro
(curiosità , ciònonostante mi ingegnerò x riuscire a "riconoscerle" anche
quando sono criptate)
spero di essere stato chiaro (ehm :))
ciao !
foolver[at]
ctonet.it

controllando ora nel db di un vbulletin noto che le password sono cryptate
*uhm* :-)

 wrote in message
news:r6Lx8.8051$W9.1...@twister2.libero.it...

fai tutto con mySQL:
INSERT INTO Users (pwd) VALUES(PASSWORD('laPasswordSegreta'))
SELECT * FROM  Users WHERE pwd=PASSWORD('laPasswordDaConfronto');

 funziona md5
Un sistema informatico non è mai "sicuro" o "non sicuro"... la sicurezza è
un livello, criptare le password aumenta il livello di sicurezza del tuo
sistema, nel caso in cui qualcuno riuscisse ad interrogare liberamente il
tuo database.
Per come farlo ti ha già risposto Jurgen...
--
Reply to: brain79(at)
inwind.it
www.brainetwork.net
ICQ# 
4742797710
 - FeSToso n°143

Grazie mille di tutto , la funzione PASSWORD('pwd') quando inserisco i dati
nella tabella funziona perfetta il problema sta quando devo richiedere i
dati , io ho provato cosě (riporto un pezzo di codice)
ho scritto due commenti in tutto .. magari potete dirmi se nel secondo ho
detto qualcosa giusto :)
Ciao
....
if ($controllo != y)
 {
echo $form;
 }
else
  {
$richiesta="SELECT * FROM acconti WHERE nome='$nome_form' and
password=PASSWORD('$password_form')";   // RIGA INCRIMINATA
// risultato
$risultato=mysql_query($richiesta);
// metto il risultato in un array
$row=mysql_fetch_array($risultato);
// richiamo ogni singolo termine del risultato dall' array
$nome=$row["nome"];
$password=$row["password"];
$dataregistrazione=$row["dataregistrazione"];
$numeropost=$row["numeropost"];
$email=$row["email"];
if (($nome==$nome_form) && ($password==$password_form))
/* credo che il problema sia qui xchč la verifica non essendo la pass
immessa nel form cryptata scazza .. il problema č che se uso
PASSWORD('$password_form') poi non funzia nulla .. lo stesso se faccio nella
riga direttamente sopra il controllo
$password_form=PASSWORD('$password_form') */
   {
$form2="<form action=edit_profile.php method=post>
<input type=hidden name=nome_originale value=\"$nome\">
<input type=hidden name=password_originale value=\"$password\">
<input type=hidden name=email_originale value=\"$email\">
Nome : $nome<p>
Password : <input type=password name=modifica_password
value=\"$password\"><p>
Email : <input type=text name=modifica_email value=\"$email\"><p>
Data di registrazione : $dataregistrazione<p>
Numero di post : $numeropost<p>
<input type=submit value=modifica>
<input type=reset value=reimposta><p>
</form>";
echo $form2;
    }
else
    {
echo "<br><b>Nome o password incorretti !!!";
    }
  }
mysql_close();
....


http://www.matteomoro.cjb.net/
"Il 90% dei problemi di un PC
sta tra la tastiera e la sedia"

 ha scritto nel messaggio
news:h8ofcu4dakcki9e2k...@4ax.com...


 if (($nome==$nome_form) && ($password==$password_form))
non c'e' bisogno di riverificare se fai i check come scritto prima (if
$row), perche' quelli assicurano gia' che ci sia veramente un risultato.
quindi toglie questo check inutile. La query ti riporta un risultato valido
solo se nome e password sono uguale al valore salvato nel database.
La struttura dello script dovrebbe essere quindi piu meno cosi:
$risultato=mysql_query($richiesta) or die (mysql_error());
if ($risultato)
{
    $row=mysql_fetch_array($risultato);
    if ($row)
    {
        // ora siamo sicuri di avere una password e nome OK
        echo "access granted";
        // [...]
    }
    else
    {
        echo "access denied";
    }
}
else
{
    echo "access denied";
}
Piu' chiaro?


De nada ma... IL QUOTING!!!


Grazie mille x l' attenzione vedrò di sistemare il codice , scusate ma sto
proprio alle prime armi , sia col php(sql e mysql)  che con la scrittura di
codice :) (coding?)

ecco finito .. funziona perfetto :))
ho messo qualche commento x vedere se ho capito realmente bene quello che mi
è stato scritto
se interessa a qualcuno la versione finita (
foolver.dyndns.org/db/index.php
)
codice :
// inserisci nome e pass x accedere (+ in là ci sarà un controllo con
cookie)
$form="<form action=profile.php method=post>
<input type=hidden name=controllo value=y>
Nome : <input type=text name=nome_form><p>
Password : <input type=password name=password_form><p>
<input type=submit>
</form>";
if ($controllo != y){
echo $form;
}
else
          {
$richiesta="SELECT * FROM acconti WHERE nome=\"$nome_form\" and
password=\"$password_form\"";
// risultato
$risultato=mysql_query($richiesta)or die (mysql_error());
//se la query va a buon fine
if($risultato)
  {
    $row=mysql_fetch_array($risultato);
  }
// se la riga cercata ESISTE ..  quindi nome e pass son giusti
if ($row)
      {
$nome=$row["nome"];
$password=$row["password"];
$dataregistrazione=$row["dataregistrazione"];
$numeropost=$row["numeropost"];
$email=$row["email"];
$user_id=$row["user_id"];
$form2="<form action=edit_profile.php method=post>
<input type=hidden name=nome_originale value=\"$nome\">
<input type=hidden name=password_originale value=\"$password\">
<input type=hidden name=email_originale value=\"$email\">
Nome : $nome<p>
Password : <input type=password name=modifica_password
value=\"$password\"><p>
Email : <input type=text name=modifica_email value=\"$email\"><p>
Data di registrazione : $dataregistrazione<p>
Numero di post : $numeropost<p>
Numero utente : $user_id<p>


 $user_id=$row["user_id"];
Bella lista, prova con extract(), fai prima...
extract($row,EXTR_OVERWRITE);

 $user_id=$row["user_id"];
Bella lista, prova con extract(), fai prima...
extract($row,EXTR_OVERWRITE);
azz , nei libri in cui studio  non ho ancora letto di questa funzione
ora la provo (anche se non ho capito bene come funzia)  tnx :)

 wrote in message
news:nWcy8.94541$SR5.2...@twister1.libero.it...

l'unico 'libro' buono per PHP e su 
www.php.net
 ;-)
fup2: poster (plz)

 fup2: poster (plz)
vabbè chiaro (lo ho notato !! :P)
ma considera che di programmazione ne so poco e nulla (+ nulla che poco :))
quindi mi servivano anche quelle basi che su 
php.net
 non si trovano :)
cmq i libri su cui sto studiando  sono :
(con il primo mi trovo davvero bene (almeno x quanto riguarda sql/mysql e
scrivere un codice pulito)
- Sviluppare applicazioni per database con MySQL/PHP di Jay Greenspan  ,
Brad bulger
- Introduzione a PHP 4.0 (Dalle nozioni di base alla programmazione avanzata
con Javascript e XML) di W.J. Gilmore (ottime spiegazioni)
-Programmare con PHP4  di Thomas Theis (mhà!!)
ciaoz  :)