Подтвердить что ты не робот

SHA-256 или MD5 для целостности файлов

Я знаю, что SHA-256 предпочитает MD5 для обеспечения безопасности и т.д., но, если я использую метод для проверки целостности файла (то есть, ничего общего с шифрованием пароля и т.д.), есть ли любое преимущество использования SHA-256?

Так как MD5 является 128-битным, а SHA-256 256-бит (поэтому вдвое больше)...

  • Может ли зашифровать до двух раз?

  • Если время не имеет существенного значения, например, в резервной программе, и целостность файла - это все, что необходимо, кто-нибудь будет возражать против MD5 для другого алгоритма или даже предложить другой метод?

    /li >
  • Использует ли MD5 контрольную сумму?

4b9b3361

Ответ 1

Оба SHA256 и MDA5 являются алгоритмами хэширования. Они берут ваши входные данные, в этом случае ваш файл, и выводят 256/128-битное число. Этот номер является контрольной суммой. Шифрование отсутствует, потому что бесконечное количество входов может привести к одному и тому же значению хеширования, хотя в действительности столкновения редки.

SHA256 требует больше времени для вычисления, чем MD5, в соответствии с этим ответом.

Оффлайн, я бы сказал, что MD5, вероятно, будет подходящим для того, что вам нужно.

Ответ 2

В 1): Да, на большинстве процессоров SHA-256 примерно на 40% быстрее, чем MD5.

To 2): В таком случае я бы поспорил о других алгоритмах, кроме MD5. Я определенно предпочел бы алгоритм, который считается безопасным. Однако это скорее чувство. Случаи, когда это имеет значение, были бы скорее построены, чем реалистичные, например. если ваша система резервного копирования встретит пример случая атаки на сертификат на основе MD5, у вас, вероятно, будет два файла в таком примере с разными данными, но идентичные контрольные суммы MD5. Для остальных случаев это не имеет значения, поскольку контрольные суммы MD5 имеют столкновение (= одинаковые контрольные суммы для разных данных) практически только тогда, когда они спровоцированы намеренно. Я не специалист по различным алгоритмам хэширования (контрольной суммы), поэтому я не могу предложить другой алгоритм. Следовательно, эта часть вопроса остается открытой. Предлагаемое дальнейшее чтение: Криптографическая хэш-функция - файл или идентификатор данных в Википедии. Также ниже на этой странице есть список криптографических алгоритмов хеширования.

До 3): MD5 - это алгоритм вычисления контрольных сумм. Контрольную сумму, рассчитанную с использованием этого алгоритма, затем называют контрольной суммой MD5.

Ответ 3

  • Нет, это менее быстро, но не так медленно
  • Для программы резервного копирования, возможно, потребуется что-то еще быстрее, чем MD5

В целом, я бы сказал, что MD5 в дополнение к имени файла абсолютно безопасен. SHA-256 будет работать медленнее и сложнее из-за его размера.

Вы также можете использовать что-то менее безопасное, чем MD5, без каких-либо проблем. Если никто не пытается взломать целостность вашего файла, это тоже безопасно.

Ответ 4

Кажется, что каждый ответ предполагает, что вам нужно использовать безопасные хэши, чтобы выполнить эту работу, но все они настроены так, чтобы быть медленными, чтобы заставить злоумышленника иметь большую вычислительную мощность, и в зависимости от ваших потребностей это может быть не лучшим решение.

Существуют алгоритмы, специально предназначенные для хэш файлов как можно быстрее, чтобы проверить целостность и сравнение (murmur, XXhash...). Очевидно, что они не предназначены для обеспечения безопасности, поскольку они не отвечают требованиям алгоритма безопасного хэша (то есть случайности), но имеют низкие скорости столкновений для больших сообщений. Эти функции делают их идеальными, если вы не ищете безопасность, но скорость.

Примеры этих алгоритмов и сравнение можно найти в этом превосходном ответе: Какой алгоритм хеширования лучше всего подходит для уникальности и скорости?.

В качестве примера, мы на нашем сайте Q & A используем murmur3 для хэш-изображений, загруженных пользователями, поэтому мы сохраняем их только один раз, даже если пользователи загружают одно и то же изображение в нескольких ответах.

Ответ 5

Технически утверждается, что MD5 быстрее, чем SHA256, поэтому для проверки целостности файла это будет достаточно и лучше для производительности.

Вы можете проверить следующие ресурсы:

Ответ 6

Основной алгоритм MD5 уже не считается безопасным, поэтому, поскольку md5sum хорошо подходит для идентификации известных файлов в ситуациях, которые не связаны с безопасностью, на него нельзя полагаться, если есть вероятность, что файлы были целенаправленно и злонамеренно подделаны. В последнем случае настоятельно рекомендуется использовать новый хеширующий инструмент, такой как sha256sum.

Итак, если вы просто хотите проверить повреждение файла или разницу в файлах, когда источнику файла доверяют, MD5 должен быть достаточным. Если вы хотите проверить целостность файла, поступающего из ненадежного источника или из надежного источника по незашифрованному соединению, MD5 недостаточно.

Другой комментатор отметил, что Ubuntu и другие используют контрольные суммы MD5. Ubuntu перешел в PGP и SHA256, в дополнение к MD5, но документация по более сильным стратегиям проверки сложнее найти. Более подробную информацию см. на странице HowToSHA256SUM.