Почему нельзя генерировать пароли через random в Python: разбор на практике
Вы уверены, что ваш “случайный” пароль действительно случайный?Я тоже так думал — пока не полез разбираться, как Python на самом деле генерирует случайные значения. Оказалось, что привычный random — это не про безопасность вообще. Это генератор, который только выглядит случайным, но при определённых условиях может б...
Вы уверены, что ваш “случайный” пароль действительно случайный?Я тоже так думал — пока не полез разбираться, как Python на самом деле генерирует случайные значения. Оказалось, что привычный random — это не про безопасность вообще. Это генератор, который только выглядит случайным, но при определённых условиях может быть воспроизведён. Что даст нам возможность предсказать все будущие пароли и прошлые.В статье я последовательно разбираю: • почему классическая “энтропия пароля” часто вводит в заблуждение; • как устроен Mersenne Twister и в чём его фундаментальная проблема; • почему даже хороший seed (через os.urandom) не делает random безопасным; • и что на практике можно (и нельзя) восстановить, имея время генерации, код и несколько паролей. Я попытался воспроизвести реальную атаку: восстановить seed по временной метке и набору сгенерированных паролей. Спойлер — всё оказалось сложнее, чем кажется.Отдельно показываю, где проходит граница между «кажется надёжным» и «действительно криптостойким», и почему secrets — это не просто «рекомендованный модуль», а принципиально другой класс генерации.
Краткая сводка
В статье раскрывается, что модуль random в Python использует предсказуемый генератор Mersenne Twister, который даже при надёжном seed (например, из os.urandom) не обеспечивает криптографической стойкости паролей, демонстрируется возможность восстановления seed по времени и набору паролей и рекомендуется использовать модуль secrets для безопасной генерации.
Связанные теги
Компании и люди
Линия сюжета
Habr
Последние материалы и связанные ссылки по теме Habr.
Habr
Последние материалы и связанный контекст по теме Habr.
Python-системы
Последние материалы и связанные ссылки по теме Python-системы.
Python-системы
Последние материалы и связанный контекст по теме Python-системы.
Random
Последние материалы и связанные ссылки по теме Random.
Random
Последние материалы и связанный контекст по теме Random.
Продолжить следить за темой
Переходите к связанным материалам, страницам сущностей и активным линиям сюжета.
Почему 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
Свежие публикации и продолжение темы от той же редакции.
Почему IT-найм сломан — и что будет с рынком в 2026 году
Почему найм в IT стал жёстким, как фейковые резюме и AI убили доверие, и почему в 2026 году легче не станет.
Как устроен мой сайт в 2026 году: Astro, 300р. VPS и никакого Vercel
Недавно я выпустил две статьи - про подход POSSE и про SEO + GEO в 2026 году. В комментариях и личных сообщениях несколько человек попросили описать техническую часть.Решил напи...
maxpack: межфайловая дедупликация на версионных данных
Разбор межфайловой дедупликации на версионных данных: почему обычная упаковка упирается в потолок и что меняется на CPython, Go и Node.js.
Что такое наблюдатель и при чём здесь фильтр Калмана
Прочитал на Хабр статью [1], в которой автор простым языком даёт достаточно глубокое представление такого сложного и важного математического объекта как фильтр Калмана и захотел...