Хеши/крипто

Scrypt Hash + Verify

Хеширование паролей через scrypt (RFC 7914, memory-hard KDF) с проверкой пароля против имеющегося хеша.


                    

Scrypt (RFC 7914) was one of the first memory-hard password-hashing algorithms: it deliberately requires a lot of RAM, not just CPU time, to make parallel brute-forcing on GPUs and ASICs harder.

How to use it

Common uses

Things to keep in mind

The N parameter (memory cost) increases both required memory and compute time exponentially — tune it to your server's actual capacity.

Scrypt has been superseded by Argon2 (the official Password Hashing Competition winner) as the recommended choice for new systems, though scrypt itself still isn't considered unsafe.

Статья об этом инструменте: 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.

Статьи: Хеши/крипто

Hash Generator: чем MD5, SHA-1 и SHA-256 отличаются друг от друга

Почему MD5 до сих пор используют для проверки целостности файлов, но не для паролей.

Checksum Verifier: как проверить, что файл не повреждён

Почему совпадение контрольной суммы подтверждает целостность файла, но не то, кто его создал.

HMAC: чем хеш с ключом отличается от обычного хеша

Почему обычный SHA-256 не защищает от подделки сообщения, а HMAC — защищает.

Bcrypt: почему пароли хешируют медленно, а не быстро

Почему быстрый SHA-256 — плохая идея для паролей, а медленный bcrypt — правильная.

UUID: как генерируют идентификаторы, которые почти никогда не повторяются

Почему UUID v4 можно генерировать независимо на миллионах машин без риска коллизий.

Генератор паролей: что на самом деле делает пароль устойчивым

Почему длинный пароль из словаря надёжнее короткого с символами и цифрами.

AES: как работает симметричное шифрование

Почему один и тот же ключ шифрует и расшифровывает данные в AES, и чем это отличается от асимметричного шифрования.

Argon2: почему этот алгоритм победил в конкурсе на хеширование паролей

Чем Argon2 лучше защищает от атак на видеокартах, чем более старые алгоритмы хеширования паролей.

TOTP: как работают одноразовые коды в приложениях-аутентификаторах

Почему код в Google Authenticator работает без интернета и синхронизируется с сервером только по времени.

PBKDF2: самый старый стандарт растяжения ключей

Почему рекомендуемое количество итераций PBKDF2 растёт с каждым годом.

X.509: что внутри SSL-сертификата

Что именно браузер проверяет в сертификате сайта, прежде чем показать зелёный замочек.

PGP: как работает шифрование с открытым и приватным ключом

Почему можно свободно делиться публичным ключом PGP, но не приватным.