Какова цель хеша MD5 в загрузке приложений?

Предполагая, что вам нужно уникальное имя пользователя, следующее решение.

Создайте новый пустой массив пользователей.

Цикл по массиву пользователей.

Добавление пользователей в массив новых пользователей.

Ключ должен быть именем пользователя.

Следовательно, каждый раз, когда приходит один и тот же пользователь, он перезаписывает предыдущего, удаляя дубликаты.

Код:

$users = [
 ['John Down', 'Best Ones'],
 ['John Down', 'Cool Ones']
];
$newUsers = [];
if (! empty($users)) {
 foreach ($users as $user) {
   $newUsers[$user[0]] = $user[1];
 }
}
echo '<pre>';print_r($newUsers);echo '</pre>';

// Output:
Array
(
    [John Down] => Cool Ones
)
8
задан Daniel A. White 18 April 2009 в 22:55
поделиться

8 ответов

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

Вы проверяете его, хэшируя копию полученного файла и проверяя, совпадают ли хеши.

Люди могут введите неприятный код, замените загружаемый файл или вы можете просто получить поврежденную загрузку.

9
ответ дан 5 December 2019 в 12:12
поделиться

С точки зрения поврежденных загрузок, это довольно редко. Я не думаю, что у меня когда-либо была поврежденная загрузка, за исключением случаев, когда она каким-то образом была усечена и ошибка не сообщалась (старые FTP-клиенты в тот день).

Может быть некоторое преимущество в безопасности, если вы загружаете из зеркало, и вы доверяете реальному сайту (который публикует MD5) больше, чем вы доверяете зеркалу (которое может быть устаревшим, или злым, или ошибочным, или pwned, или чем-то еще, и так же может быть кеширующий веб-прокси между ним и вы). Впрочем, ситуация довольно маловероятная, поскольку обычно нет оснований думать, что основной сайт более или менее надежен или безопасен, чем зеркало. Тем не менее, это второе мнение.

Я обычно не проверяю опубликованные контрольные суммы, если только Это особая причина думать, что они правильные и загрузка не является безопасной (например, контрольная сумма находится на URL-адресе https, а загрузка - нет). Если вы беспокоитесь о злодеях, тогда вам нужна подпись, а не просто контрольная сумма, передаваемая небезопасно.

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

Обратите внимание, что контрольные суммы MD5 небезопасны, если злодей генерирует подлинный файл, а также хитрый вирусный файл. Можно генерировать коллизии MD5, хотя (пока) нет полной атаки перед изображением. Любой, кто серьезно относится к безопасности, переключился на суммы SHA256, где это возможно. Который меньше, чем вы могли бы надеяться, по причинам наследства и ресурсов.

3
ответ дан 5 December 2019 в 12:12
поделиться

Возможно ли, что кто-то может поставить свой код во время загрузки?

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

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

В общем, это не очень распространенная проблема, хотя есть и другие векторы атаки, которые в настоящее время гораздо более полезны для плохих парней (в основном веб-браузер) уязвимости).

2
ответ дан 5 December 2019 в 12:12
поделиться

Файл можно проверить, если он поврежден. Это все, что я думаю.

1
ответ дан 5 December 2019 в 12:12
поделиться

Хеш MD5 является формой проверки. Если один бит в файле отличается, предоставленный хэш не будет совпадать с битом, сгенерированным из файла, который вы скачали. Это предупреждает вас об ошибке при передаче или нечестной игре (редко).

1
ответ дан 5 December 2019 в 12:12
поделиться

Большую часть времени я проверяю md5. Хотя, может быть, один или два раза, да, я получил поврежденные загрузки.

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

0
ответ дан 5 December 2019 в 12:12
поделиться

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

1
ответ дан 5 December 2019 в 12:12
поделиться

По сути, он отвечает на тот же вопрос, что и аутентификация - действительно ли тот, кто говорит, что он является тем, кто он есть. Это поможет вам удостовериться, что скачанная вами программа действительно является тем, что автор предоставляет в первую очередь, и не был подделан на пути от продавца на всем протяжении лабиринта Интернета на ваш рабочий стол.

0
ответ дан 5 December 2019 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: