Я очень близок к пониманию того, как работает функция сравнения bcrypt, но в моих знаниях есть несколько недостатков.
Мое понимание до сих пор:
brcypt генерирует хешированный пароль, используя простой текстовый пароль и случайно сгенерированную соль. Хешированный пароль представляет собой комбинацию версии bcrypt, хешированной соли и сцепленного хешированного простого текстового пароля. Когда пользователь входит в систему, его пароль в виде обычного текста обрабатывается функцией сравнения. В этот момент bcrypt знает, сколько символов в хэше и с какого смещения начинать вырезать хешированную соль из полного хеша. Затем он объединяет соль с переданным паролем в виде обычного текста, прогоняя его через алгоритм хеширования, чтобы получить окончательную хешированную строку. Хешированная строка сравнивается с хешированной строкой в базе данных, и если есть точное совпадение символов, пароль правильный.
2 вопроса ..
Разве нельзя отменить хэши? Если да, то откуда bcrypt знает, как расшифровать хешированную соль, а затем использовать ее для хеширования входящего пароля в виде обычного текста. Для меня это не имеет никакого логического смысла.
Если алгоритм brcypts написан таким образом, что он всегда может создать хешированную соль, которую он всегда знает, как расшифровать, не могут ли хакеры просто использовать этот алгоритм, чтобы захватить каждый хешированный пароль из базы данных и вырезать соли? Тогда он мог бы создать радужную таблицу для каждой соли и взломать каждый отдельный пароль? Мне это кажется логичным.
Простите, если мой вопрос не имеет смысла. Рад редактировать.
Прочтите статьи, прочтите вопросы о переполнении стека, посмотрите видео и задайте вопросы старшему инженеру.