Ho provato e ho fatto così. Dal lato client, esattamente prima di inviare la password faccio la crittografia poi la invio. Dal lato server faccio il confronto.
In teoria, se la password è abbastanza complessa, la password intercettata via rete è indecifrabile.
Però proprio adesso mi è venuto in mente che qualcuno potrebbe lo stesso riprodurre pari pari il messaggio HTTP (in qualche modo, non so) inviando la password così crittografata e fare il login senza sapere esattamente qual è. Per cui in fin dei conti l'unico modo veramente sicuro di fare login è SSL. Voi cosa ne dite?
codice:<head> <title></title> <link rel="stylesheet" type="text/css" href="style.css" /> <script src="md5-min.js" type="text/javascript"></script> <script type="text/javascript"> function encrypt(){ document.getElementById('password').value=hex_md5(document.getElementById('username').value+' $%& '+document.getElementById('password').value); document.getElementById('username').value=''; } </script> </head> <body> <div id="login_frame"> <form action="main.php" method="post" onSubmit="encrypt()"> <label for="username">Username:</label> <input type="text" id="username" name="username" /> <label for="password">Password:</label> <input type="password" id="password" name="password" /> <input type="submit" value="Invia" /> <input type="reset" value="Cancella" /> <p class="error"><?php print @$_SESSION['error'];?></p> </form> </div> </body>

Rispondi quotando