// кодированиеnew

bcrypt

хешировать и проверять пароли через bcrypt

— enter a password to hash // client-only · bcryptjs
password
cost factor
~100ms
bcrypt hash
// hash appears here

              curl -sX POST 'https://api.whittly.dev/v1/bcrypt/hash' \
  -H 'Authorization: Bearer $WHITTLY_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"password":"hunter2","cost":10}'
            

              const res = await fetch('https://api.whittly.dev/v1/bcrypt/hash', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + apiKey,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ password: "hunter2", cost: 10 }),
});
const data = await res.json();
            

              const { data } = await axios.post(
  'https://api.whittly.dev/v1/bcrypt/hash',
  { password: "hunter2", cost: 10 },
  { headers: { Authorization: 'Bearer ' + apiKey } }
);
            
// proпакетное хешированиеpro·поддержка pepperproподробнее →

// о инструменте

Bcrypt — адаптивный алгоритм хеширования паролей, намеренно медленный. Параметр cost (от 4 до 14) определяет количество раундов хеширования. Удвоение cost удваивает время вычисления — брутфорс становится всё сложнее по мере роста производительности железа.

// когда использовать

  • Захешировать пароль перед сохранением в базу данных
  • Проверить пароль пользователя по сохранённому хешу
  • Подобрать оптимальный cost-фактор для своего сервера
  • Разобраться в формате bcrypt-хеша ($2a$, $2b$)

// faq

Какой cost-фактор выбрать?
OWASP рекомендует выбирать cost достаточно высоким, чтобы хеширование занимало не менее 1 секунды на продакшн-железе. Cost 12 — разумный дефолт для большинства серверов в 2024 году.
Почему одинаковый пароль даёт разные хеши?
Bcrypt генерирует случайную 128-битную соль для каждого хеша. Соль хранится внутри строки хеша (22 символа после cost-фактора). Поэтому одинаковые пароли дают разные хеши — rainbow table атаки не работают.
// история
Pro Облачная синхронизация — подробнее
операций пока нет