substr( md5( $variable ) ,0 ,13);
Äh nein - das ist kein Hash mit 13 Stellen sondern ein vrstümmelter Hash der eine Signifikant höhere Kollisionswahrscheinlichkeit hat als ein (theoretisch) baugleicher Hashalgorithmus, der tatsächlich 13 Stellen liefert.
vgl. "Geburtstagsproblem."
Bei einem echten (perfekten) Hash-Algorithmus mit 13 Stellen und 16 Zeichen Vorrat würde eine Kollision nach spätestens ~4.5*10^15 Klartexten auftreten - wenn du aber die Entropie eines Streuwerts verringest, indem du einfach vom Fetigen Hash ein paar Stellen abschneidest, tritt so eine Kollision potentiell früher auf.