Если злоумышленник может получить хешированный пароль, он потенциально может отменить его, используя радужную таблицу . Радужная таблица - это в основном огромная база данных всех возможных паролей до определенного размера, проиндексированных по их хэшу. Я думаю об этом как об окончательном компромиссе между скоростью и космосом. Для паролей длиной до 7 символов, содержащих только строчные буквы и цифры, радужная таблица может уместиться в несколько гигабайт. Для более длинных паролей (или паролей с меньшим количеством символов) требуемый размер увеличивается экспоненциально.
Чтобы победить эту атаку, вам нужно засолить хэши . Соль означает, что вы добавляете случайное значение соли к паролю перед его хэшированием. Эта соль может храниться в незашифрованном виде рядом с хешем. Поскольку каждый пароль хэшируется с другой случайной солью, таблица поиска радуги становится бесполезной. Радужные таблицы не могут учитывать все возможные значения соли, поскольку требуемый размер базы данных растет экспоненциально с размером соли.
Даже в этом случае слабые пароли, соответствующие хэшу salt +, все еще можно найти с помощью грубой силы. Это можно исправить с помощью некоторой эвристики контроля качества для пароля (минимальная длина, смешивает определенные типы символов, такие как строчные / прописные буквы / цифры / другие, а не просто 1 в конце ...).
В целом, я бы сказал, что риски для безопасности, связанные с раскрытием хеша, достаточно велики, поэтому вам лучше избегать его.