Crea l'hash con md5() od un'altra funzione insieme a microtime() etc., utilizza substr() per estrarre il numero di caratteri che ti servono, poi effettua una query per verificare che il codice non sia già utilizzato.