Файл который нужно не давать без пароля ложишь в папку и настройками вебсервера (nginx|apache) запрещаешь к ней доступ. Далее смотришь функцию
file_get_contents. В файле в котором ты пишешь код принимаешь GET параметры: pass,secret,file_name и если параметры соответствуют заданным то возвращаешь содержимое "file_name"