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

Блокчейн
Основой криптовалюты является блокчейн, который представляет собой не что иное, как соединение отдельных блоков данных транзакций. Когда мы имеем дело с криптовалютой (например, биткойн), детали, связанные с транзакциями, передаются алгоритму хэширования (SHA-256), результатом которого является хеш-значение постоянной длины, с помощью которого мы не можем угадать, что на самом деле данные были. Поскольку все эти блоки связаны друг с другом, если нам нужно изменить данные в конкретном блоке, нам нужно изменить данные в его предыдущем блоке, и так далее…. . Именно так блокчейн становится неизменным, а его данные заслуживают доверия.
Сегмент AWS S3
Ведро AWS S3 использует алгоритм хеширования MD-5. Это означает, что всякий раз, когда мы пытаемся загрузить какой-либо файл, он сначала проходит через код MD-5, и его целостность проверяется. Если проверка не пройдена, это означает, что значение не является введенным пользователем, что приводит к сообщению об ошибке, а также к сбою сохранения объекта.
Предположим, другому пользователю нужен какой-то файл в корзине. Прежде всего, конкретный пользователь будет искать тег E в AWS S3. После чего пользователь получит значение MD 5 для загруженного файла и проверит, совпадают ли оба значения. Мы можем проверить целостность объекта, сравнив оба этих значения, чтобы сделать вывод, был ли объект подделан в сети или загружен не полностью.
Таким образом, мы можем узнать о процессе загрузки нашего файла, был ли он подделан, путем загрузки или загрузки с использованием хеширования.
Хэширование паролей
Всякий раз, когда мы вводим пароль для любой учетной записи, он преобразуется в строку, не имеющую связи с паролем, и сохраняется в базе данных. Поэтому, когда пользователь хочет зарегистрировать учетную запись, которая потребует от него выбора пароля, вместо того, чтобы хранить этот пароль в виде текста, он сохраняется в виде хэша, сгенерированного из одного введенного пользователя. Почему мы не должны хранить пароль в виде текста? Потому что, если злоумышленник получит доступ к базе данных, он, в свою очередь, получит доступ к реальному паролю, который пользователь мог использовать для разных учетных записей (причина, по которой большинство веб-сайтов предупреждают не использовать везде один и тот же пароль). Когда любой пользователь хочет войти в систему, он вводит свой пароль, который хэшируется и сверяется со значениями в своей базе данных, чтобы убедиться, что введенный пароль был правильным.
Токенизация
Токены кредитных карт используются для обмена данными клиента с буквенно-цифровым идентификатором, который не имеет определенного значения и не имеет отношения к владельцу учетной записи. Сами токены не содержат никаких полезных потребительских данных. Эти токены имеют данные о местоположении, где данные пользователя хранятся в банке клиента. Например, если мы хотим проверить, соответствует ли токен Карте, достаточно сравнить хэш карты с токеном. Кроме того, невозможно отменить токен, потому что он не был сохранен в таблице вместе с картой и токеном.
Алгоритм Рабина-Карпа
Майкл О. Рабин и Ричард Карп сформулировали способ поиска строк путем реализации хеширования, что привело к временной сложности O(M + N) по сравнению с обычной O(MN). Он в основном используется для поиска строки. В зависимости от размера строки мы продолжаем вычислять хеш-значения для шаблона. Один для исходной строки, а другой для последовательности символов в строке, к которой мы продолжаем переходить к концу строки. Как только мы получим совпадение двух хэшей, нам нужно снова проверить исходные строки, поскольку разные строки могут иметь один и тот же хэш. Продолжаем так, пока не дойдем до конца строки.