Каким образом можно гарантировать уникальность хэш-строки для определенного файла?
У каждого алгоритма хэширования есть вероятность коллизий из-за ограничения длинны генерируемой строки.Это неотъемлемая часть собственно хеширования. Если нужно чтобы дубликаты были невозможны в принципе, длина хэша должна быть не меньше длины исходного файла.
Шансы случайной коллизии настолько невероятны, что об них можно и не думать. 
На практике достаточно хранить достаточно длинный хэш (Даже SHA1 пойдёт) плюс, возможно, длину файла для предварительной проверки на уникальность (до хеширования)
SHA1 достаточно уникальна. Коллизии у MD5 ищутся за минуты, про SHA1 и тем более SHA512 такого не слышал.