Хеші/крипто
Scrypt Hash + Verify
Хешування паролів через scrypt (RFC 7914, memory-hard KDF) з перевіркою пароля проти наявного хешу.
Scrypt (RFC 7914) — один із перших memory-hard алгоритмів хешування паролів: він навмисно вимагає багато оперативної памʼяті, а не лише часу процесора, щоб ускладнити паралельний перебір на GPU й ASIC-пристроях.
Як користуватися
- Хешування: введіть пароль і налаштуйте параметри (N — вартість памʼяті, r — розмір блоку, p — паралелізм) — отримаєте готовий хеш.
- Перевірка: вставте пароль і наявний scrypt-хеш, щоб перевірити відповідність.
- Кожне хешування використовує нову випадкову сіль, тому однаковий пароль щоразу дає інший хеш.
Типові сценарії
- Перевірка, що бекенд коректно хешує паролі алгоритмом scrypt перед збереженням.
- Генерація тестового scrypt-хешу для fixtures чи seed-даних у розробці.
- Порівняння scrypt з bcrypt і Argon2 при виборі алгоритму хешування для нового проєкту.
Що варто памʼятати
Параметр N (вартість памʼяті) експоненційно збільшує і потрібну памʼять, і час обчислення — підбирайте його відповідно до реального навантаження сервера.
Scrypt був витіснений Argon2 (переможцем офіційного Password Hashing Competition) як рекомендований вибір для нових систем, хоча сам scrypt і досі не вважається небезпечним.
Стаття про цей інструмент: Scrypt: навіщо алгоритму потрібно багато пам'яті
Часті запитання
Чим scrypt відрізняється від bcrypt чи PBKDF2?
Scrypt навмисно є як пам'яттю-залежним, так і вимогливим до CPU, що робить його значно дорожчим для зламу на GPU чи спеціалізованому ASIC-обладнанні порівняно з bcrypt чи PBKDF2, які здебільшого протистоять лише перебору на CPU.
За що відповідають параметри N, r і p?
N задає вартість CPU/пам'яті (має бути степенем двійки), r — розмір блоку, що впливає на використання пам'яті за операцію, а p — паралелізацію; збільшення будь-якого з них підвищує вартість ресурсів як для легітимного використання, так і для атак.
Чи все ще scrypt хороший вибір порівняно з Argon2?
Scrypt лишається надійним і перевіреним часом, але для нових систем зазвичай радять Argon2 (переможця Password Hashing Competition), оскільки він пропонує тонше керування пам'яттю та стійкістю до атак по бічних каналах.
Скільки пам'яті реально споживає scrypt?
Приблизно 128 × N × r байтів на одне обчислення. При типових параметрах (N=16384, r=8) це близько 16 мегабайтів на один хеш — незначно для одного логіну, але суттєво при тисячах одночасних автентифікацій на сервері.
Де ще застосовується scrypt, крім хешування паролів?
Scrypt відомий як алгоритм proof-of-work у деяких криптовалютах (наприклад, Litecoin) — його обрали саме через стійкість до майнінгу на спеціалізованих ASIC-пристроях, характерну для біткоїна з його SHA-256.