Алгоритм хеширования, его использование?

Я не полностью понимаю алгоритмов хеширования. Кто-либо хочет объяснить это мне очень просто понятным способом.

Спасибо

Править: Используя его с Именами пользователей от текстового файла.

8
задан Matt 3 July 2013 в 16:51
поделиться

4 ответа

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

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

11
ответ дан 5 December 2019 в 10:01
поделиться

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

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

md5 (), sha0 и sha1 () уязвимы для атак хеш-коллизии и никогда не должны использоваться для чего-либо, связанного с безопасностью. Вместо этого следует использовать любой член семейства sha-2, например sha-256.

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

Алгоритмы хеширования пытаются упростить сравнение больших данных. Вместо сравнения данных на равенство достаточно сравнить хеш-значения.

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

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

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

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

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