Хеши/крипто

PBKDF2 Hash + Verify

Производный ключ через PBKDF2 (RFC 8018) с паролем, HMAC-SHA1/256/384/512 и настраиваемым количеством итераций.


                    

PBKDF2 (RFC 8018) applies HMAC to a password and salt repeatedly to deliberately slow down computation — it's the oldest of the standardized algorithms for password hashing and encryption key derivation.

How to use it

Common uses

Things to keep in mind

Unlike bcrypt and Argon2, PBKDF2 isn't memory-hard — it only requires CPU time, so it's less resistant to attacks on GPUs with many parallel compute units.

The recommended iteration count rises over time in NIST and OWASP guidance as hardware gets faster — check against current recommendations periodically.

Статья об этом инструменте: PBKDF2: самый старый стандарт растяжения ключей

Часто задаваемые вопросы

Чем PBKDF2 отличается от bcrypt или Argon2 для хеширования паролей?

PBKDF2 многократно применяет HMAC-хеш-функцию, чтобы замедлить перебор, но, в отличие от bcrypt или Argon2, не требователен к памяти, поэтому его относительно дешевле взломать на GPU. Он всё ещё широко используется и одобрен FIPS, но для новых систем обычно рекомендуют Argon2.

За что отвечает количество итераций и каким оно должно быть?

Количество итераций задаёт, сколько раз применяется базовая хеш-функция, напрямую обменивая скорость на стойкость к перебору. Текущие рекомендации — сотни тысяч итераций для SHA-256, с увеличением со временем по мере роста мощности оборудования.

Зачем PBKDF2 нужна соль?

Соль гарантирует, что одинаковые пароли дают разный результат, не позволяя злоумышленникам использовать заранее вычисленные радужные таблицы и заставляя атаковать каждый хеш отдельно.

Имеет ли значение, какую базовую хеш-функцию использует PBKDF2?

Да. Старые реализации часто использовали HMAC-SHA1 по умолчанию — в конструкции HMAC это не критическая уязвимость, но современные рекомендации однозначно советуют HMAC-SHA256 или более сильный вариант ради большего запаса прочности без заметной потери скорости.

Где ещё используется PBKDF2, кроме хранения паролей?

PBKDF2 широко применяют для вывода криптографических ключей шифрования из паролей — например, в WPA2/WPA3 для Wi-Fi и во многих форматах зашифрованных файловых контейнеров.

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

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

Scrypt: зачем алгоритму нужно много памяти

Почему scrypt намеренно требует много памяти, чтобы усложнить перебор на ASIC-устройствах.

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

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

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

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

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

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