Выявлять коррупцию не совсем правильно. Чтобы убедиться в целостности программного обеспечения было бы более правильное использование. Обычно программное обеспечение не распространяется с одного сервера. Одно и то же программное обеспечение может распространяться со многих серверов. Поэтому при загрузке определенного программного обеспечения в качестве источника загрузки выбирается ближайший к месту назначения сервер, чтобы увеличить скорость загрузки. Однако этим «неофициальным» (сторонним) серверам не всегда можно доверять. Они могут / могут включать трояны / вирусы / рекламное ПО / бэкдоры в программу, что не очень хорошо .
Таким образом, чтобы гарантировать, что загруженное программное обеспечение точно такое же, как и у «официального» программного обеспечения, выпущенного соответствующей организацией, используется контрольная сумма. Алгоритмы, используемые для генерации контрольных сумм, таковы, что даже небольшое изменение в программе приводит к совершенно другой контрольной сумме.
Пример взят из Практической Unix и Internet Security
MD5 (в синей рамке 1500 долларов) = 05f8cfc03f4e58cbee731aa4a14b3f03
MD5 (в синей рамке 1100 долларов) = d6dee11aae89661a45eb9d21e30d34cb
Сообщения, которые отличаются только одним символом (и внутри этого символа только одним двоичным битом), имеют совершенно разные дайджесты сообщений.
Если загруженный файл имеет ту же контрольную сумму, что и контрольная сумма, указанная на «официальном» веб-сайте, то можно предположить, что программное обеспечение не было изменено.
Примечание: теоретически два разных файла МОГУТ иметь одинаковое значение хеш-функции. Чтобы алгоритм хэш / контрольной суммы считался безопасным, в вычислительном отношении очень дорого находить другой файл, который выдает такую же контрольную сумму.