md5 liefert 32 stellige codes.
Könnte man auf 16 Stellen abschneiden
Im weiteren würde ich gerne codes ohne vorlage generieren.
Wieso verwendest du als "Vorlage" nicht einfach du Unix-Timestamp? Dann hast du bei jedem Aufruf einen einmaligen Wert. Ich gehe jetzt mal davon aus, dass sich nicht mehrere Personen in der gleichen Millisekunde bei dir anmelden.