Я никогда не отдам ИИ эту задачу. И вам не советую
🤖 Вчера наткнулся на исследование https://www.irregular.com/publications/vibe-password-generation — ребята взяли Claude, GPT и Gemini и попросили каждый сгенерировать пароль. По 50 раз. Независимыми сессиями. Выглядело занятно.
Claude Opus 4.6 выдал 50 «случайных» паролей — из них 18 оказались одинаковыми: G7$kL9#mQ2&xP4!w. 36% вероятность получить именно его. У GPT — почти все начинались на v, потом Q. У Gemini — на K или k.
Все эти пароли выглядели надёжными. KeePass оценивал их в 100 бит энтропии — «отличный пароль, взломают через столетия». На деле — около 27 бит. Это не столетия, а секунды даже на обычном компьютере.
⚡️ Проблема не в конкретной модели, а в самой природе задачи.
LLM — это предсказатель следующего токена. Он обучен на текстах, в которых «случайные» строки выглядели определённым образом. Поэтому он воспроизводит не случайность, а статистически вероятную имитацию случайности. Это две принципиально разные вещи.
➡️ Оказалось, что и выбор температуры в настройках LLM не спасает. Исследователи проверили — при максимальной температуре 1.0 Claude всё равно дважды выдал тот же G7$kL9#mQ2&xP4!w из 10 попыток.
Видимо, это не баг конкретной модели, а архитектурное ограничение всего класса.
❌ Дальше — интереснее. Те же исследователи тестировали агентные среды — Claude Code, Codex, Cursor.
🔡 Обнаружили: если попросить «generate a password», агент часто использует openssl rand. Но стоит написать «suggest a password», и он генерирует пароль напрямую из модели, без инструментов. Одно слово меняет класс безопасности результата.
🔡 Можно очень легко проверить это на практике, и ребята сделали это. На GitHub нашли реальные docker-compose-файлы, .env-файлы и bash-скрипты с паролями вида Rt7xK9mP2vNqL4wB — прямо в конфигах production-сервисов. Пароли, которые, кажется, выглядят надёжно. И которые, оказывается, можно перебрать за минуты, если знать паттерны конкретной модели.
🗳 Я спокойно отдаю ИИ черновики, анализ данных, рефакторинг кода (всегда помним про ДСП, такие вещи только на локальных моделях). Но генерацию паролей — никогда.
Я и раньше так думал, а после прочтения исследования точно понимаю, что у таких задач другой класс требований: нужна криптографическая случайность, а не правдоподобная.
Менеджер паролей с нормальным CSPRNG (криптографически стойкий генератор псевдослучайных чисел — можете https://ru.wikipedia.org/wiki/Криптографически_стойкий_генератор_псевдослучайных_чисел почитать подробнее) под капотом делает эту работу лучше. Такой, например, есть в приложении «Пароли» от Apple или других подобных приложениях.
Иногда зрелость в работе с ИИ — это понимать, где его применять точно не нужно. А чтобы детальнее изучить, какие действия совершают LLM при генерации «случайных» паролей, прочитайте исследование. Думаю, вы откроете для себя много нового и интересного.
#СГ_АвторскийВзгляд