Merke: Man kann einen Hash mit 13 Stellen so sicher machen wie einen mit 32 Stellen, wenn man den Algorithmus so verändert, dass er einen größeren Zeichenvorrat nutzt.
Du vergisst dabei, dass MD5 eine 128-Bit-Ganzzahl ist - die nur als 32-stellige Hexadezimalzahl, als 39-stellige Dezimalzahl oder sonstwie dargestellt wird.
Wenn man viele Hashes in einer Datenbank speichert, ist man selbst Schuld, wenn man diese als Text speichert - es bleiben 128 Bit. Warum sollte man für 128 Bit Informationsgehalt 32 Byte Speicherplatz verschenken?
Die Fehler, die md5 unzweifelhaft hat, treten übrigens hinter den gezeigten Zahlen zurück. Das Hauptproblem von md5 ist die Vorhersagbarkeit: Es ist unter bestimmten Voraussetzungen möglich zwei Texte mit gleichem Hash (das ist die erwähnte Kollision) zu _generieren_.
Und nachdem das bereits bei einem vollständigen, ungekürzten Hash machbar ist, ist es ungleich einfacher, wenn man nur noch rund 1/3 der Stellen hat.