У меня миллионы записей данных, каждый размером около 2 МБ. Каждый из этих фрагментов данных хранится в файле, и существует набор других данных, связанных с этой записью (хранящихся в базе данных).
Когда моя программа запустится, мне представят в памяти одну из записей данных, и мне нужно будет создать соответствующие данные. Для этого я представляю себе, как взять MD5 из памяти, а затем использовать этот хэш в качестве ключа в базе данных. Ключ поможет мне найти другие данные.
Что мне нужно знать, так это то, является ли хеш MD5 содержимого данных подходящим способом для уникальной идентификации фрагмента данных объемом 2 МБ, то есть я могу использовать хеш MD5, не слишком заботясь о коллизиях?
Я понимаю, что есть вероятность столкновения, меня беспокоит, насколько велика вероятность столкновения с миллионами записей данных по 2 МБ? Является ли столкновение вероятным явлением? Как насчет того, чтобы сравнивать его со сбоями жесткого диска или другими сбоями в работе компьютера? Сколько данных можно использовать MD5 для безопасной идентификации? а как насчет миллионов ГБ файлов?
Меня не беспокоит злоба или фальсификация данных. У меня есть такая защита, что я не буду получать манипулированные данные.