Para hacer eso necesitas apache y mod rewrite, donde todas las urls viajen directamente hacia index.php y este php sea el encargado de obtener el hash del archivo y solicitar las credenciales necesarias, etc.
Luego el mismo php debiera ser el encargado de dar el archivo utilizando fopen enviando strings en bloques de 2kb para prevenir el uso excesivo de memoria.
Recuerda establecer que el tiempo de demora de la ejecución de php sea infinito para que la persona pueda descargar archivos grandes correctamente.
El usuario final jamas debería ver la url del archivo original, de hecho el archivo original debiera estar en un directorio rpotegido con acceso denegado a todos utilizando deny for all desde un htaccess.
Buenas, soy un poco novato en esto XD, ¿Podrías poner un ejemplo de esto o explicarlo un poco mas?
Muchas gracias por la información de todas formas.