Что такое scrypt?
scrypt — это функция вывода ключа на основе пароля (KDF), требовательная к памяти. Она преобразует пароль и соль в детерминированные байты ключа, намеренно расходуя процессорное время и память, из-за чего массовый подбор паролей становится дороже, чем при простом хешировании.
Ключевые моменты:
- Использует
N(коэффициент стоимости),r(размер блока) иp(параллелизм) - Более высокие значения
Nиrувеличивают затраты памяти и вычислений - Даёт тот же производный ключ только при совпадении пароля, соли, параметров и длины вывода
Рекомендации:
- Используйте уникальную случайную соль для каждого пароля или секрета
- Храните
N,r,p, формат соли и длину вывода рядом с производным ключом - Настройте параметры на самом медленном устройстве, которое нужно поддерживать, прежде чем использовать их в продакшене