Краткий ответ: Нет , то, что вы описываете, совсем не безопасно.
Прежде всего, bcrypt не является функцией шифрования, и поэтому его результаты не могут быть "расшифрованы".bcrypt - это функция дайджеста сообщений, созданная с использованием blowfish.Хэши, созданные функцией дайджеста сообщения, взломаны.
Для клиента очень проблематично пройти аутентификацию с использованием функции дайджеста сообщения.NTLM от Microsoft использует функцию аутентификации сообщений для аутентификации, и он был многократно сломан .Я думаю, что этот подход к аутентификации несовершенен и его следует избегать.
Причина, по которой используются функции дайджеста сообщений, заключается в глубокой защите защиты в слоях.Если злоумышленник может найти уязвимость SQL-инъекций, вы должны заставить его тратить ресурсы на взлом хеша, прежде чем они смогут войти в систему.Если я смогу извлечь хеш из базы данных и использовать его для входа в систему, то ваша система абсолютно бесполезна. Атаки воспроизведения представляют собой серьезную проблему, когда клиент аутентифицируется с помощью хэша.Если я смогу прослушать сеть и воспроизвести последовательность входа в систему, то эта система абсолютно бесполезна.
Создайте случайную соль, bcrypt.gensalt(12)
, вероятно, в порядке.Сохраните хэш и соль в вашей базе данных.Вы должны пройти аутентификацию, используя безопасный транспортный уровень.Обязательно прочитайте owasp a9 .