Считаете хеш каждого файла. Если такой хеш уже встречался - даете такое же имя как и раньше давали такому же хешу. Если не встречался - даете новое имя.
Новое имя генерируете простейшим инкрементом. Т.е. первый файл - "0". Второй файл - "1". Третий файл - "2". Десятый файл - "a".
Такой подход не рационален, если вам надо будет в последствии определять, есть ли уже файл с таким хешом, т.к. имя файла не отражает хеш. Но в условии об этом ни слова. Ну и в крайнем случае можете хранить таблицу "хеш-имя".