Почему нельзя генерировать пароли через random в Python: разбор на практике
Вы уверены, что ваш “случайный” пароль действительно случайный?Я тоже так думал — пока не полез разбираться, как Python на самом деле генерирует случайные значения. Оказалось, что привычный random — это не про безопасность вообще. Это генератор, который только выглядит случайным, но при определённых условиях может б...
Вы уверены, что ваш “случайный” пароль действительно случайный?Я тоже так думал — пока не полез разбираться, как Python на самом деле генерирует случайные значения. Оказалось, что привычный random — это не про безопасность вообще. Это генератор, который только выглядит случайным, но при определённых условиях может быть воспроизведён. Что даст нам возможность предсказать все будущие пароли и прошлые.В статье я последовательно разбираю: • почему классическая “энтропия пароля” часто вводит в заблуждение; • как устроен Mersenne Twister и в чём его фундаментальная проблема; • почему даже хороший seed (через os.urandom) не делает random безопасным; • и что на практике можно (и нельзя) восстановить, имея время генерации, код и несколько паролей. Я попытался воспроизвести реальную атаку: восстановить seed по временной метке и набору сгенерированных паролей. Спойлер — всё оказалось сложнее, чем кажется.Отдельно показываю, где проходит граница между «кажется надёжным» и «действительно криптостойким», и почему secrets — это не просто «рекомендованный модуль», а принципиально другой класс генерации.
Краткая сводка
В статье объясняется, что генератор random в Python основан на Mersenne Twister и не обеспечивает криптографической стойкости паролей, даже при использовании хорошего seed, а также демонстрируется попытка восстановления seed по времени и паролям; в результате автор рекомендует использовать модуль secrets для надёжного генерирования паролей.
Связанные теги
Компании и люди
Линия сюжета
Продолжить следить за темой
Переходите к связанным материалам, страницам сущностей и активным линиям сюжета.
Почему IT-найм сломан — и что будет с рынком в 2026 году
Почему найм в IT стал жёстким, как фейковые резюме и AI убили доверие, и почему в 2026 году легче не станет.
Как устроен мой сайт в 2026 году: Astro, 300р. VPS и никакого Vercel
Недавно я выпустил две статьи - про подход POSSE и про SEO + GEO в 2026 году. В комментариях и личных сообщениях несколько человек попросили описать техническую часть.Решил напи...
Что такое наблюдатель и при чём здесь фильтр Калмана
Прочитал на Хабр статью [1], в которой автор простым языком даёт достаточно глубокое представление такого сложного и важного математического объекта как фильтр Калмана и захотел...
Как прошло обновление курса «Python-разработчик»: продуктовые кейсы, ИИ и помощь в трудоустройстве
Привет, Хабр! Меня зовут Андрей Горлов, я CEO IT-компании «Альтеркод» и программный эксперт курса «Python-разработчик» в Яндекс Практикуме. Недавно мы провели рефакторинг програ...
Subtyping и variance в Rust: о чём обычно молчат
Привет, Хабр! Есть вещи в Rust, которые работают незаметно, пока не ломаются, да ломаются они странно... Компилятор указывает на место, где вы ничего плохого не делали, и говори...
FDM vs SLA: когда послойное наплавление проигрывает фотополимеру — разбор на реальном проекте
Что, если идеальное устройство для руки — это устройство, которое почти невозможно напечатать на 3D-принтере? Именно в этом парадоксе мы застряли на несколько месяцев, когда нач...
Страницы сущностей
Рекламный слот
Встроенный блок в статье
Зарезервированный партнерский слот для релевантных инструментов, сервисов и аккуратных редакционных интеграций.
Похожие статьи
Еще материалы, которые пересекаются по тегам, источнику или категории.
Почему IT-найм сломан — и что будет с рынком в 2026 году
Почему найм в IT стал жёстким, как фейковые резюме и AI убили доверие, и почему в 2026 году легче не станет.
Как устроен мой сайт в 2026 году: Astro, 300р. VPS и никакого Vercel
Недавно я выпустил две статьи - про подход POSSE и про SEO + GEO в 2026 году. В комментариях и личных сообщениях несколько человек попросили описать техническую часть.Решил напи...
Что такое наблюдатель и при чём здесь фильтр Калмана
Прочитал на Хабр статью [1], в которой автор простым языком даёт достаточно глубокое представление такого сложного и важного математического объекта как фильтр Калмана и захотел...
Как прошло обновление курса «Python-разработчик»: продуктовые кейсы, ИИ и помощь в трудоустройстве
Привет, Хабр! Меня зовут Андрей Горлов, я CEO IT-компании «Альтеркод» и программный эксперт курса «Python-разработчик» в Яндекс Практикуме. Недавно мы провели рефакторинг програ...
Еще материалы от Habr
Свежие публикации и продолжение темы от той же редакции.
Постмортем без наказаний: культура разбора ошибок, которая реально улучшает качество проектов
В инфраструктурных проектах цена ошибки может измеряться миллионами и репутацией компании. Но практика показывает: поиск виноватых редко помогает избежать повторения проблем, го...
[Перевод] Телескоп «Уэбб» обнаружил новые сверхмассивные чёрные дыры — на этот раз в карликовых галактиках
Одно из явлений, которое астрономы обнаруживают при изучении галактик, — это корреляция между массой галактики и массой её сверхмассивной чёрной дыры в центре. Вопреки распростр...
Мой AI-агент рапортовал 83 успешных действия. Реальных было 16
В дашборде было 83 успешных engagement’а. В аналитике X — 16 настоящих ответов. Пять к одному. Неделю я этого не замечал.Контекст: у меня автономный AI-агент, который пишет комм...
Матрица трассируемости: Навигатор тестировщика
Матрица трассируемости (RTM) — инструмент, который помогает QA видеть реальное покрытие требований и не тестировать «вслепую».В статье разберём: • что такое RTM и зачем она нужн...