Originariamente inviato da Vre
Quando mi connetto al db MySQL ho una pagina con le password e i nomi in chiaro...se metto la pass in md5 (o in qualche modo criptata)viene riconosciuta lo stesso da mysql?
Mi pare tutto molto confuso.

nel database "si dovrebbe" mettere la password cryptata (MD5() nell'esempio). Nel form l'utente la password la mette in chiaro ovviamente. Poiche' il campo input type=password accetta al massimo 8 chr, non potra' mai passare una stringa di 32 chr, anche se dovesse venire copiata dal db.

$pwd = MD5($_POST['password'];

In questo modo la stringa in chiaro in $_POST['password'] verra' immediatamente convertita in un hash di MD5(), "qualunque cosa essa contenga" compreso i caratteri proibiti o pericolosi. Sara' una innocua stringa di 32 chars exadecimali, che se non corrisponde a quella memorizzata nel db non permettera' l'autenticazione dello user.

Questa stringa verra' usata all'interno dello script per essere inserita oppure per verificarne l'esistenza nel db. Non serve estrarre e comparare, operazione inutile se nella select si ha il WHERE pwd = $pwd.

Ci sono vari thread su questo argomento. Solo bisogna "forzare" lo user ad utilizzare password (in chiaro) di almeno 6 chars. Questi "almeno" 6 chars, possono essere qualunque carattere. Tanto verranno tradotti in un hash di 32 byte. Il campo nel db dovra' essere VARCHAR(32).