Magzhan Yeleup, а, это не куки, а кэш. Проверить, самый простой вариант - по заголовку If-Modified-Since (если файл есть в кэше, при запросе на сервер браузер укажет в этом заголовке дату кешированной копии файла).
key don, в целях дедупликации, чтобы если несколько юзеров загрузят один и тот же файл (они могут быть под разными именами) - все файлы указывали на один и тот же физический файл, а он не хранился в нескольких копиях.
Алгоритм хеширования любой пойдёт, тот же sha256 к примеру (или sha1, но он подвержен атаке генерации двух различных файлов с одинаковыми хэшами).