PHP: ¿Cuál es una buena manera de producir una cadena alfanumérica corta a partir de un hash largo md5?

Esto tiene el propósito de tener una bonita URL corta que se refiera a un hash md5 en una base de datos. Me gustaría convertir algo como esto:

a7d2cd9e0e09bebb6a520af48205ced1

en algo como esto:

hW9lM5f27

Ambos contienen aproximadamente la misma cantidad de información. El método no tiene que ser directo y reversible, pero sería bueno (más flexible). Al menos, me gustaría una cadena generada aleatoriamente con el hash hexadecimal como semilla para que sea reproducible. Estoy seguro de que hay muchas respuestas posibles, tengo curiosidad por ver cómo la gente lo haría de una manera elegante.

Oh, esto no tiene que tener una correspondencia perfecta 1: 1 con el hash original, pero eso sería una ventaja (supongo que ya lo implicaba con los criterios de reversibilidad). Y me gustaría evitar colisiones si es posible.

EDITAR Me di cuenta de que mis cálculos iniciales estaban totalmente equivocados (gracias a las personas que respondieron aquí, pero me tomó un tiempo darme cuenta) y realmente no se puede reducir mucho la longitud de la cadena al agregar todas las letras minúsculas y mayúsculas en la mezcla. Así que supongo que querré algo que no se convierta directamente de hexadecimal a base 62.

Respuestas a la pregunta(6)

Su respuesta a la pregunta