In order to protect password systems from compromise, the following should be noted:
Use a zero-knowledge password protocol, such as SRP.
Ensure that passwords are stored safely and are not reversible.
Implement password aging functionality that requires passwords be changed after a certain point.
Use a mechanism for determining the strength of a password and notify the user of weak password use.
Inform the user of why password protections are in place, how they work to protect data integrity, and why it is important to heed their warnings.