Una alternativa es utilizar una función recursiva, la idea es que trabajes sobre los archivos de un directorio, si encuentras un directorio, llamas nuevamente a la función.
Aquí tienes un ejemplo bastante util
Función Recursiva para Buscar Archivos en Directorios y Sub Directorios
Solo lo debes modificar para guardes el hash en vez del tiempo de modificación.
Saludos.