scrypt Генератор хешей
Бесплатный онлайн-инструмент scrypt Генератор хешей. 100% локальная обработка — ваши данные никогда не покидают устройство.
Результат будет отображен здесь...
Ввод → Вычислить хеш
Usage Guide
О функции scrypt
scrypt (RFC 7914) — это требовательная к памяти функция деривации ключа на основе пароля, разработанная для потребления как процессорного времени, так и оперативной памяти в значительных объёмах. Она была создана для противодействия атакам методом перебора с использованием GPU, FPGA и ASIC, которые угрожают PBKDF2 и bcrypt. scrypt применяется в алгоритме Proof-of-Work Litecoin, менеджерах паролей и безопасной деривации ключей. Три параметра стоимости позволяют настраивать баланс между безопасностью и производительностью.
Инструкция по использованию
scrypt — это однонаправленная функция деривации ключа, она не может быть обращена:
Формат вывода
scrypt выводит полную строку параметров, необходимую для будущих верификаций:
Выбор параметров scrypt
Выбирайте параметры исходя из требований к безопасности и допустимой задержки:
FAQ
Q: Что делает scrypt устойчивым к аппаратным атакам?
A: scrypt требователен к памяти: его внутренний алгоритм ROMix требует обращения к большому блоку памяти (128 × N × r байт) в псевдослучайном порядке. Этот паттерн последовательного доступа к памяти не поддаётся параллелизации, как SHA-256, — заполнение N=16384, r=8 требует ~16 МБ случайного доступа, что делает атаки на GPU/ASIC на несколько порядков дороже по сравнению с чисто вычислительными хешами вроде SHA-256 или PBKDF2.
Q: Как scrypt сравнивается с bcrypt и Argon2?
A: Все три являются алгоритмами хеширования паролей, но отличаются дизайном: bcrypt (1999) требователен только ко времени (фиксированные 4 КБ памяти), что делает его всё более уязвимым к атакам GPU. scrypt (2009) требователен к памяти, устойчив к GPU/ASIC, но имеет сложное взаимодействие параметров (большое N также увеличивает стоимость CPU через p). Argon2id (2015, победитель PHC) требователен к памяти, устойчив к GPU и имеет независимые параметры времени/памяти/параллелизма. OWASP и NIST рекомендуют Argon2id для новых систем; scrypt — сильный второй выбор.
Q: Почему N должно быть степенью двойки?
A: Алгоритм ROMix в scrypt использует N внутренне как размер таблицы поиска и полагается на побитовое маскирование (index & (N-1)) для эффективного случайного доступа. Этот трюк с маской работает корректно только тогда, когда N является степенью двойки. Распространённые значения: 16384 (2¹⁴) для интерактивного использования, 1048576 (2²⁰) для шифрования файлов.
Q: Можно ли использовать вывод scrypt непосредственно в качестве криптографического ключа?
A: Да — scrypt специально разработан для генерации ключевого материала. 32-байтный (256-битный) вывод пригоден в качестве ключа AES-256 или ключа ChaCha20-Poly1305. Однако никогда не используйте одну и ту же деривацию scrypt для нескольких целей (например, аутентификация И шифрование) — выводите отдельные ключи с разными солями или используйте KDF вроде HKDF для расширения одного корневого ключа.
Q: Каков формат входных данных для верификации?
A: Чтобы проверить пароль по сохранённому хешу scrypt, разместите пароль и полную выходную строку scrypt через символ вертикальной черты: пароль|16384:8:1:salt_base64:key_hex. Инструмент повторно выводит ключ с использованием сохранённых параметров и сравнивает его с сохранённым ключом. При совпадении возвращается «✓ Пароль подтверждён».
Q: Подходит ли scrypt для хранения паролей в базе данных?
A: Да, при надлежащих параметрах. Сохраняйте полную строку (n:r:p:salt:key) для каждого пользователя — она содержит всё необходимое для будущих верификаций. Используйте минимум N=16384, r=8, p=1 для интерактивных входов; увеличивайте N для более критичных с точки зрения безопасности приложений. Актуальные рекомендации см. в памятке OWASP по хранению паролей.
Use Cases
Рекомендуется: Хранение паролей
scrypt — превосходный выбор для хеширования паролей перед сохранением в базу данных. Его требовательность к памяти делает атаки методом перебора в офлайн-режиме на несколько порядков дороже, чем PBKDF2 или bcrypt. Используйте N≥16384 для веб-приложений, более высокие значения — для более критичных систем.
- ✅ scrypt с N=16384, r=8, p=1 для интерактивных веб-входов
- ✅ Хранить полную строку n:r:p:salt:key — никогда только ключ
- ✅ Использовать уникальную случайную соль для каждого пользователя (генерируется автоматически)
- ❌ Не использовать scrypt с N<1024 — недостаточный рабочий коэффициент
- 💡 Рассмотрите Argon2id для новых проектов — текущая рекомендация OWASP
Рекомендуется: Деривация ключей для шифрования дисков
scrypt хорошо подходит для вывода ключей шифрования из парольных фраз для шифрования дисков или файлов. Более высокие параметры (N=1048576) уместны, поскольку деривация происходит один раз при монтировании, а дополнительные секунды задержки приемлемы. Производный ключ можно использовать непосредственно с AES-256-GCM.
- ✅ scrypt с N=1048576 (2²⁰) для деривации ключей шифрования дисков/файлов
- ✅ Использовать 32-байтный вывод непосредственно в качестве ключа AES-256-GCM
- ✅ Хранить параметры scrypt и соль вместе с зашифрованными данными
- ❌ Не использовать один и тот же производный ключ для аутентификации и шифрования
Рекомендуется: Криптовалютные приложения
scrypt был принят в качестве алгоритма Proof-of-Work для Litecoin (и других криптовалют). В приложениях-кошельках scrypt используется для вывода приватных ключей из мнемоник или парольных фраз. Его требовательность к памяти была выбрана именно для противодействия преимуществам ASIC-майнинга.
- ✅ scrypt для вывода ключей кошелька из пользовательских парольных фраз
- ✅ scrypt для защищённого парольной фразой хранения ключей
- ❌ Для приложений PoW-майнинга использовать параметры, специфичные для реализации
Не рекомендуется: Неаутентифицированные контексты
scrypt выводит ключ — само по себе оно не обеспечивает аутентификацию или целостность. Если нужен код аутентификации сообщения, используйте HMAC-SHA256. Для быстрой контрольной суммы данных используйте SHA-256. Вычислительная стоимость scrypt делает его непригодным для высокочастотных операций.
- ❌ scrypt для хеширования общего назначения (вместо него SHA-256)
- ❌ scrypt для HMAC или аутентификации сообщений
- ❌ scrypt для высокочастотных операций (подписание API-запросов, токены на запрос)
- ✅ scrypt только там, где его свойства защиты паролем явно необходимы
Сводка лучших практик
- scrypt — требовательная к памяти KDF, подходящая для хеширования паролей и деривации ключей из парольных фраз.
- Всегда сохраняйте полную строку параметров (n:r:p:salt:key) — никогда только ключ.
- N должно быть степенью двойки; значение по умолчанию N=16384, r=8, p=1 подходит для интерактивных входов.
- Для новых приложений OWASP рекомендует Argon2id как первый выбор; scrypt — сильный второй выбор.
- scrypt НЕ подходит для хеширования общего назначения, MAC или высокочастотных операций — для них используйте SHA-256 или HMAC.