# Генератор Bcrypt

Создает хеш пароля bcrypt со случайной солью длиной 16 байт и коэффициентом сложности от 4 до 12. Инструмент возвращает стандартную модульную строку хеша, начинающуюся с $2a$, которую принимают PHP password_verify, Node.js bcrypt, Spring Security и большинство фреймворков. Используйте инструмент для создания тестовых пользователей, сброса пароля администратора в базе данных или проверки собственного кода хеширования. Пароль не отображается в ответе и не сохраняется.

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

### Что такое bcrypt?

Bcrypt — функция хеширования паролей из 1999 на основе шифра Blowfish. Она объединяет случайную соль с настраиваемой сложностью: каждый дополнительный шаг сложности вдвое увеличивает объем работы, необходимой злоумышленнику для одной попытки. Эта функция по-прежнему широко поддерживается и подходит для хранения паролей.

### Что означает выходная строка?

Хеш, например $2a$10$ с последующими 53 символами, содержит версию 2a, сложность 10, соль из 22 символов и хеш из 31 символа — все в собственном алфавите Base64 bcrypt. Сохраняйте строку целиком: средство проверки считывает из нее соль и сложность.

### Какой коэффициент сложности выбрать?

Инструмент позволяет выбрать сложность от 4 до 12 и по умолчанию использует 10 — распространенное значение во фреймворках. Каждый шаг удваивает время вычисления, поэтому при сложности 12 хеширование занимает примерно в четыре раза больше времени, чем при 10. В рабочей среде выберите максимальную сложность, которую серверы могут обрабатывать примерно за 100–250 миллисекунд.

### Почему максимальная сложность ограничена значением 12?

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

### Почему при каждом хешировании одного и того же пароля результат отличается?

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

### Есть ли ограничение на длину пароля?

Да. Bcrypt использует только первые 72 байта пароля, поэтому инструмент отклоняет более длинные пароли, а не игнорирует их остаток без предупреждения. Каждый символ не из ASCII занимает в UTF-8 несколько байт.

### Примут ли PHP или Laravel хеш $2a$?

Да. Функции PHP password_verify, Laravel, Symfony и WordPress, использующие password_hash, принимают хеши $2a$, $2b$ и $2y$, которые различаются только исправлениями исторических ошибок. Node.js bcrypt, bcryptjs, Python bcrypt и Spring Security также принимают $2a$.

### Сохраняется ли мой пароль или записывается в журнал?

Нет. Пароль используется только для вычисления хеша во время запроса. Он удаляется из ответа и никогда не записывается в журналы или хранилище.

### Что выбрать: bcrypt или Argon2?

OWASP рекомендует более новый Argon2id, поскольку он требует много памяти, что повышает стоимость атак с использованием GPU. Bcrypt по-прежнему приемлем и поддерживается очень многими библиотеками, поэтому это надежный выбор, если Argon2 недоступен.

### Как проверить пароль по хешу bcrypt?

Используйте Bcrypt Verifier на этом сайте или вызовите функцию verify вашего фреймворка. Никогда не сравнивайте строки bcrypt напрямую: новый хеш одного и того же пароля всегда выглядит иначе.

Ваша реклама здесь?

[Напишите нам по электронной почте](mailto:hi@dennn.is?subject=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D0%BD%D0%B0%20OneClick%20Pro)

[Реклама Набор плагинов для работы агентов с WordPress.](https://sleekwp.com/?ref=oneclickpro)
