Se hai già implementato il sistema di salvataggio dell'hash e di autenticazione dell'utente con l'esempio di codice che ti ho mostrato in precedenza puoi restare fermo così.
L'unico modo per migliorare la protezione è usare SSL.
Lascia perdere il criptaggio lato utente, perché purtroppo senza SSL non si può realizzare in maniera che sia realmente efficace.
Ora il fatto di scoraggiare le connessioni (intendo login, pardon) da reti pubbliche è per il motivo che non puoi proteggere il dato della password dal client fino al server fino a quando non usi SSL.