Учитывая полное случайное содержимое файла и хороший криптографический хэш, вероятность того, что будут два файла с одинаковым значением хэша, достигнет 50%, если количество файлов примерно равно 2 (количество бит в хэш-функции/2). То есть для 128-битного хеша будет 50% вероятность хотя бы одного столкновения, когда количество файлов достигнет 2^64.
Содержимое вашего файла явно не случайное, но я не знаю, насколько сильно это влияет на вероятность столкновения. Это называется атакой на день рождения, если вы хотите больше искать Google.
Это вероятностная игра. Если количество изображений будет существенно меньше 2^64, вы, вероятно, в порядке. Если вы все еще обеспокоены, использование комбинации SHA-1 плюс MD5 (в качестве еще одного предложенного ответа) приведет вас к 288 высококачественным хэш-битам, что означает, что у вас будет 50% вероятность столкновения являются 2^144 файлов. 2^144 - большое количество. Могущественный. Можно даже сказать огромное.
Потому что, если два человека загружают одно и то же изображение, я не хочу его хранить дважды. – 2009-03-09 21:34:45