Различие между Хешированием Пароля и Шифрованием его

126
задан Community 23 May 2017 в 11:33
поделиться

6 ответов

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

Шифрование является надлежащим (два пути) функция. Это обратимо, можно дешифровать искаженную строку для получения исходной строки, если у Вас есть ключ.

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

Люди обычно говорят, что, если взломщик владеет Вашей базой данных или Вашим кодом, ему не нужен пароль, таким образом различие спорно. Это - naГЇve, потому что у Вас все еще есть обязанность защитить пароли Ваших пользователей, главным образом потому что большинство из них действительно использует тот же пароль много раз, подвергая их большему риску путем утечки их паролей.

205
ответ дан 24 November 2019 в 00:52
поделиться

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

8
ответ дан 24 November 2019 в 00:52
поделиться

Хеширование является односторонней функцией, означая что, после того как Вы хешируете пароль, очень трудно вернуть старый пароль от хеша. Шифрование является двухсторонней функцией, где намного легче вернуть оригинальный текст из зашифрованного текста.

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

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

31
ответ дан 24 November 2019 в 00:52
поделиться

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

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

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

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

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

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

7
ответ дан 24 November 2019 в 00:52
поделиться

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

1
ответ дан 24 November 2019 в 00:52
поделиться

В идеале вам следует сделать и то, и другое.

Сначала Хешируйте пароль для односторонней защиты. Используйте соль для дополнительной безопасности.

Затем зашифруйте хэш для защиты от атак по словарю, если ваша база данных хешей паролей будет скомпрометирована.

3
ответ дан 24 November 2019 в 00:52
поделиться
Другие вопросы по тегам:

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