← Все комнаты Путь «Защита (код)» →
СложныйЗащита (код) Код Осенний CTF

Почти тот же пароль

Прогресс комнаты 0 / 4
Задание 1Введение

Цель: Запрещать почти одинаковые пароли.

Напишите too_similar(old, new): True, если новый пароль отличается от старого не больше чем на 2 правки (вставка, удаление, замена символа) без учёта регистра.

Задание 2Теория и инструменты

Пользователи меняют Summer2024! на Summer2025!. Если старый пароль утёк, новый угадывается мгновенно.

Расстояние Левенштейна считает минимальное число правок между строками.

Инструменты

  • Python 3 или Node.js
  • Встроенные тесты в редакторе

Больше теории — в разделе «Обучение: Защита (код)».

Задание 3Практика: напишите код

Примеры

Пример 1
too_similar("Summer2024!", "Summer2025!")
→ true
Пример 2
too_similar("Summer2024!", "summer2024")
→ true

Ещё 6 скрытых тестов.

solution
Ctrl+Enter — отправить Войдите, чтобы отправить

Пошаговый план — открывайте по одному шагу

  1. 1
    Приведите строки к нижнему регистру.

Подсказки — каждая до решения стоит −50 очков

Задание 4Как защититься

Сравнивайте при смене пароля, пока старый ещё введён. Хранить пароли открытым текстом для этого нельзя.

Разборы участников

Разборы открываются после того, как вы решите комнату, — чтобы не спойлерить ответ.