C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 121 - Что такое хеш код / MSDN rus / Visual C++

Шаг 121 - Что такое хеш код

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

121_1.gif (1898 b)

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

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


| |
Автор Каев Артем.
[AD]