Matasano hat einen sehr lesenswerten Artikel über sichere Passwort-Hashes, Rainbow-Tables und unfähige Software-Entwickler geschrieben:
Enough With The Rainbow Tables: What You Need To Know About Secure Password Schemes
Das Fazit daraus ist, Passwörter dürfen niemals im Klartext sondern müssen immer als Salted Hash gespeichert werden. Der Salt kann im Klartext zum Passwort-Hash dazugespeichert werden, sollte jedoch mindestens 16 Bit lang sein. Als Hash sollte nicht MD5 oder SHA1 zum Einsatz kommen, die viel zu schnell sind und einem Angreifer die Möglichkeit geben, viele Hashes in sehr kurzer Zeit zu testen. Statt dessen sollte etwas wie bcrypt() von OpenBSD verwendet werden, das auf Blowfish aufsetzt und sehr langsam und umständlich ist.
Nachtrag:
Matasano hat eine neue Blog-Adresse und einen neuen Link.