Что такое хеширование паролей?

Что означает хеш-пароль?

Ответы

Ответ 1

Определение:
Хеширование - это приложение функции f() к входу с переменным размером для создания выхода с постоянным размером.

A => f() => X
B => f() => Y
C => f() => Z

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

Детали:

Хэш-функция может быть такой же простой, как "добавить 13 во вход" или сложной, как криптографический хэш, такой как MD5 или SHA1. Есть много вещей, которые составляют хорошую хеш-функцию, например:

  • Низкая стоимость: легко вычислить
  • Детерминированный: если я несколько раз нахожу вход a, я получаю один и тот же вывод каждый раз
  • Uniformity: вход будет равномерно распределен между возможными выходами. Это согласуется с тем, что называется Принцип Pigeonhole. Поскольку существует ограниченное количество выходов, мы хотим, чтобы f() размещал эти выходы равномерно, а не в одном и том же ковше. Когда два входа вычисляются на один и тот же вывод, это называется столкновением. Хорошо, что хеш-функция производит меньше столкновений.

Хеширование применяется к паролям:

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

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

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

Поскольку хеш является односторонним, означает, что вход не может быть определен на выходе, поэтому хеширование отлично подходит для паролей!

Ответ 2

берет блок данных и возвращает строку, так что вы не можете вернуть исходный блок данных.

Статья в Википедии

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

Этот запрещает хранить пароли cleartext в базе данных (плохая идея).

Ниже представлен список хеш-функций .

Ответ 3

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

Существуют различные алгоритмы хэширования, наиболее популярными являются MD5, но есть и многие другие. Многие эксперты в отрасли используют алгоритм SHA256 для лучшей безопасности.

MD5 Хеш для слов:

пароль: 22e5ab5743ea52caf34abcc02c0f161d

ПАРОЛЬ - 319f4d26e3c536b5dd871bb2c52e3178

Длина символа результата будет одинаковой, независимо от того, сколько символов вы пытаетесь сделать хэшем. Хэши обычно используются для хранения паролей, чтобы предотвратить их просмотр.