Что такое хэш? - PullRequest
       20

Что такое хэш?

9 голосов
/ 15 ноября 2009

Я учу MD5. Я нашел термин «хэш» в большинстве описаний MD5. Я погуглил «хэш», но не смог найти точный термин «хэш» в компьютерном программировании.

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

Ответы [ 7 ]

10 голосов
/ 15 ноября 2009

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

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

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

У меня нет цитаты, именно так я понял аналогию с тех пор, как услышал ее в 80-х годах. Кто-то, должно быть, был там, когда термин впервые был применен.

7 голосов
/ 15 ноября 2009

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

3 голосов
/ 15 ноября 2009

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

Как правило, любой из алгоритмов SHA предпочтительнее, чем MD5, из-за коллизий хешей, которые могут возникнуть при его использовании. См. эту статью в Википедии .

3 голосов
/ 15 ноября 2009

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

Одним из замечательных применений хэша является защита паролем. Вместо сохранения пароля в базе данных, вы сохраняете хеш пароля.

1 голос
/ 15 ноября 2009

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

1 голос
/ 15 ноября 2009

Согласно статье Wikipedia о хеш-функциях , Дональд Кнут в области искусства компьютерного программирования смог проследить концепцию хеш-функций обратно во внутреннюю заметку IBM Ханс Питер Лун в 1953 г.

И просто для забавы, вот кусок подслушанного разговора, цитируемого в Две женщины на Клондайке: история о путешествии на золотые поля Аляски (1899):

Им придется целый день держать хеш-таблицу, чтобы накормить нас. 'T будет делом короткого заказа.

1 голос
/ 15 ноября 2009

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

...