Алгоритм bcrypt основан на идее адаптивного хеширования, где ключевым элементом выступает соль (salt) — случайная строка, добавляемая к паролю перед хешированием. Соль предотвращает использование радужных таблиц и делает каждый хеш уникальным даже для одинаковых паролей.
Внутри bcrypt соль не является просто дополнительной строкой — она встроена в сам процесс вычисления хеша и влияет на итоговую сложность вычислений.
Основные задачи соли:
В библиотеке bcrypt.js генерация соли может происходить автоматически, но ручное управление этим процессом даёт больше контроля над безопасностью и производительностью.
Перед генерацией соли важно понимать параметр cost factor (или rounds). Он определяет, сколько итераций алгоритм выполнит при вычислении хеша.