puoi usarlo per fare qualsiasi cosa...ovviamente come ti hanno detto l'md5 è di 32 caratteri (attenzione...l'md5 è di 16 caratteri ma php di default lo restitusice come una stringa esadecimale e quindi diventano 32 caratteri esadecimali quindi se percaso usi php5 e hai impostato che la funzione md5 devi restituirti la forma binaria e non quella esadecimale devi lasciare 16)

per quanto riguarda il tipo di campo ... è come ti hanno detto...ma nel tuo caso...char o binary non ha importanza xche hash è case-insensitive ... metti l'uno o metti l'altro non ha importanza.

inoltre è inutile che lo setti su char se hai campi a lunghezza variabile perché mysql in auto ti trasforma il campo char in varchar ... essendo la tabella già dinamica, forse per evitare controlli aggiuntivi inutili che lo rallentano al momento delle ricerche