Ответы:
Нет. Многие файлы имеют одинаковый набор цифр и букв в ключах (хотя алгоритмы разные)
Восстановить нельзя. Более того, смысл ее в том, чтобы это сделать было невозможно. Хорошей контрольной суммой считается та, к которой даже похожий файл с той же суммой подобрать сложно (нахождение коллизий).
Вы хотите архиватор-разархиватор по принципу упакуй 4 гигабайта данных в 256 байт.
Есть программа - CRC-Recovery. Конечно это не совсем то, что вы ищите, так как программа может только восстановить поврежденный файл, а не создать с нуля. В архиве инструкция по использованию программы.
Нет)))
Чтоб было понятней, перейду к Вашему примеру. "...Отправляю эту сумму другу," и файл. Для того, чтобы друг мог быть уверен, что это именно тот файл который вы ему отправили.
Если бы это было возможн, то это была бы сенсация. Механизм вычисления контрольных сумм до сих пор улучшается т.к. контрольную сумму можно подделать, если её можно подделать, то от сюда вытекает, что при воссоздании файла из контрольной суммы могут получится разные результаты.
При потере нескольких байт их можно подбирать методом перебора в лоб до совпадения хеш суммы, и с некоторой вероятностью, это будут оригинальные байты. Так работает защита компак дисков от царапин, и данные для восстановления в архивах.
нет однозначно потому как одна контрольна сумма может быть у совершенно разных файлов
В случае CRC, вычисляемой по линейной функции, для любого файла легко найти дополнительные байты, пиписав которые к нему, получить заданное значение CRC. MD5 hash 128 битная функция. Поэтому 1 вероятность совпадения у двух файлов весьма мала 2 найти файл, дающий то же самое значение, можно только полным перебором. Сейчас это невозможно. Лет через **дцать может стать реальным на суперкомпьютерах. Однако хотя найденный файл будет давать то же самое значение MD5, вероятнее всего он не будет иметь ничего общего с исходным.
Да, можно.
Т.к содержимое файла (неважно какого типа - архив или видео) - это одно большое математическое число, зная контрольную сумму и размер файла с точностью до бита, можно восстановить по следующему циклу
1 создали файл
2 вычисляем сумму
3 сравниваем вычисленную с полученной
если не совпала
прибавляем к математическому числу в файле +1 (бит) и переходим к пункту (2)
если совпала
сообщаем пользователю
15 лет назад