E' vero che md5() non ti fa tornare indietro,ma la domanda era come cryptare e non codificare,quindi io ho risposto a tale.Si conosco le due funzioni,è chiaro poi che se qualcuno vuole leggere il valore codificato nell'url,basta che usa base64_decode() e legge quello che magari si vuole nascondere.Comunque ci sono modi per confrontare il valore crittato con md5() anche se essa non ti fa tornare indietro.
esempio in una login

$user=md5($_POST['user']);

if($user==$user_reg)
{
login effettuato
}

dove $user_reg è il valore memorizzato in un database o file di testo,al momento di una registrazione criptato con md5().