scrypt Генератор хешей

Бесплатный онлайн-инструмент scrypt Генератор хешей. 100% локальная обработка — ваши данные никогда не покидают устройство.

General
Password Hashing / KDF
Specialized
Deprecated
bytes
Вывод

Результат будет отображен здесь...

Ввод Вычислить хеш

Usage Guide

О функции scrypt

scrypt (RFC 7914) — это требовательная к памяти функция деривации ключа на основе пароля, разработанная для потребления как процессорного времени, так и оперативной памяти в значительных объёмах. Она была создана для противодействия атакам методом перебора с использованием GPU, FPGA и ASIC, которые угрожают PBKDF2 и bcrypt. scrypt применяется в алгоритме Proof-of-Work Litecoin, менеджерах паролей и безопасной деривации ключей. Три параметра стоимости позволяют настраивать баланс между безопасностью и производительностью.

scrypt — это KDF, а не хеш-функция. Она выводит ключ из пароля и соли — результат при разных параметрах НЕ является непосредственно сопоставимым. Всегда сохраняйте полную строку параметров (n:r:p:salt:key) для возможности будущей верификации.

Инструкция по использованию

scrypt — это однонаправленная функция деривации ключа, она не может быть обращена:

1. Введите парольВведите пароль, из которого нужно вывести ключ, в поле ввода
2. Настройте параметрыУстановите N (стоимость CPU/памяти), r (размер блока), p (параллелизм). Значения по умолчанию (N=16384, r=8, p=1) подходят для интерактивных входов в систему
3. Выведите ключНажмите «Зашифровать» — вывод имеет формат n:r:p:salt_base64:key_hex
4. Верифицируйте парольДля проверки вставьте полную выходную строку после пароля через | (например, мойпароль|16384:8:1:salt:keyhex) и нажмите «Расшифровать»
Конфиденциальность: Все вычисления выполняются полностью в вашем браузере через WebAssembly. Ваш пароль никогда не передаётся на сервер.

Формат вывода

scrypt выводит полную строку параметров, необходимую для будущих верификаций:

Форматn:r:p:salt_base64:key_hex (например, 16384:8:1:abc123...:d4e5f6...)
NКоэффициент стоимости CPU и памяти — должен быть степенью двойки (например, 16384 = 2¹⁴)
rПараметр размера блока — влияет на стоимость пропускной способности памяти
pКоэффициент распараллеливания — увеличивает стоимость CPU независимо от памяти
Соль16-байтная случайная соль, автоматически генерируемая при каждой деривации (в кодировке Base64)
Ключ32-байтный производный ключ (в шестнадцатеричной кодировке)

Выбор параметров scrypt

Выбирайте параметры исходя из требований к безопасности и допустимой задержки:

Интерактивный (вход в систему)N=16384, r=8, p=1 — ~100мс на современном железе, подходит для веб-аутентификации
Чувствительные данные (шифрование файлов)N=1048576, r=8, p=1 — ~5с на современном железе, подходит для ключей шифрования дисков
N должно быть степенью двойкиДопустимые значения: 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576
Использование памятиПриблизительно 128 × N × r байт (например, N=16384, r=8 → ~16 МБ)
Для новых приложений рекомендуем рассмотреть Argon2id (победитель Password Hashing Competition, рекомендованный NIST и OWASP). scrypt отличен и широко применяется, но Argon2id имеет более простую модель параметров.

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 для веб-приложений, более высокие значения — для более критичных систем.

Recommended Configuration:
  • ✅ scrypt с N=16384, r=8, p=1 для интерактивных веб-входов
  • ✅ Хранить полную строку n:r:p:salt:key — никогда только ключ
  • ✅ Использовать уникальную случайную соль для каждого пользователя (генерируется автоматически)
  • ❌ Не использовать scrypt с N<1024 — недостаточный рабочий коэффициент
  • 💡 Рассмотрите Argon2id для новых проектов — текущая рекомендация OWASP
Рекомендуется: Деривация ключей для шифрования дисков

scrypt хорошо подходит для вывода ключей шифрования из парольных фраз для шифрования дисков или файлов. Более высокие параметры (N=1048576) уместны, поскольку деривация происходит один раз при монтировании, а дополнительные секунды задержки приемлемы. Производный ключ можно использовать непосредственно с AES-256-GCM.

Recommended Configuration:
  • ✅ scrypt с N=1048576 (2²⁰) для деривации ключей шифрования дисков/файлов
  • ✅ Использовать 32-байтный вывод непосредственно в качестве ключа AES-256-GCM
  • ✅ Хранить параметры scrypt и соль вместе с зашифрованными данными
  • ❌ Не использовать один и тот же производный ключ для аутентификации и шифрования
Рекомендуется: Криптовалютные приложения

scrypt был принят в качестве алгоритма Proof-of-Work для Litecoin (и других криптовалют). В приложениях-кошельках scrypt используется для вывода приватных ключей из мнемоник или парольных фраз. Его требовательность к памяти была выбрана именно для противодействия преимуществам ASIC-майнинга.

Recommended Configuration:
  • ✅ scrypt для вывода ключей кошелька из пользовательских парольных фраз
  • ✅ scrypt для защищённого парольной фразой хранения ключей
  • ❌ Для приложений PoW-майнинга использовать параметры, специфичные для реализации
Не рекомендуется: Неаутентифицированные контексты

scrypt выводит ключ — само по себе оно не обеспечивает аутентификацию или целостность. Если нужен код аутентификации сообщения, используйте HMAC-SHA256. Для быстрой контрольной суммы данных используйте SHA-256. Вычислительная стоимость scrypt делает его непригодным для высокочастотных операций.

Recommended Configuration:
  • ❌ 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.

Обсуждение и отзывы

0 комментариев
Я