Met md5 maak je een md5 hash van een string. Dit is overigens leesbaar maar vrij lastig te raden omdat de buitenwereld niet exact weet wat jij allemaal in je string zet.
Koppeling aan e-mail adres is geen strak plan omdat je niet kan weten wie de bon in gaat leveren. Evenmin weet je of de persoon die de bon in gaat leveren het e-mail adres van de persoon die heeft betaald kent, of dat de persoon die heeft betaald het e-mail adres van de persoon kent die de bon in gaat leveren..
Het is overigens een harde eis dat je voldoende random zaken in een sting zet. De randomizer van blackhorse is naar mijn mening niet goed genoeg.
En nee, ik ga niet uitleggen hoe ik het doe gebruik je fantasie maar..