News Grower

Независимое покрытие AI, стартапов и технологий.

Почему нельзя генерировать пароли через random в Python: разбор на практике

Вы уверены, что ваш “случайный” пароль действительно случайный?Я тоже так думал — пока не полез разбираться, как Python на самом деле генерирует случайные значения. Оказалось, что привычный random — это не про безопасность вообще. Это генератор, который только выглядит случайным, но при определённых условиях может б...

Автор: PetrVasilchenko Оригинальный источник
Почему нельзя генерировать пароли через random в Python: разбор на практике

Вы уверены, что ваш “случайный” пароль действительно случайный?Я тоже так думал — пока не полез разбираться, как Python на самом деле генерирует случайные значения. Оказалось, что привычный random — это не про безопасность вообще. Это генератор, который только выглядит случайным, но при определённых условиях может быть воспроизведён. Что даст нам возможность предсказать все будущие пароли и прошлые.В статье я последовательно разбираю: • почему классическая “энтропия пароля” часто вводит в заблуждение; • как устроен Mersenne Twister и в чём его фундаментальная проблема; • почему даже хороший seed (через os.urandom) не делает random безопасным; • и что на практике можно (и нельзя) восстановить, имея время генерации, код и несколько паролей. Я попытался воспроизвести реальную атаку: восстановить seed по временной метке и набору сгенерированных паролей. Спойлер — всё оказалось сложнее, чем кажется.Отдельно показываю, где проходит граница между «кажется надёжным» и «действительно криптостойким», и почему secrets — это не просто «рекомендованный модуль», а принципиально другой класс генерации.

Краткая сводка

В статье объясняется, что генератор random в Python основан на Mersenne Twister и не обеспечивает криптографической стойкости паролей, даже при использовании хорошего seed, а также демонстрируется попытка восстановления seed по времени и паролям; в результате автор рекомендует использовать модуль secrets для надёжного генерирования паролей.

Связанные теги

Компании и люди

Линия сюжета

Продолжить следить за темой

Переходите к связанным материалам, страницам сущностей и активным линиям сюжета.

Как устроен мой сайт в 2026 году: Astro, 300р. VPS и никакого Vercel

Как устроен мой сайт в 2026 году: Astro, 300р. VPS и никакого Vercel

Недавно я выпустил две статьи - про подход POSSE и про SEO + GEO в 2026 году. В комментариях и личных сообщениях несколько человек попросили описать техническую часть.Решил напи...

Что такое наблюдатель и при чём здесь фильтр Калмана

Что такое наблюдатель и при чём здесь фильтр Калмана

Прочитал на Хабр статью [1], в которой автор простым языком даёт достаточно глубокое представление такого сложного и важного математического объекта как фильтр Калмана и захотел...

Как прошло обновление курса «Python-разработчик»: продуктовые кейсы, ИИ и помощь в трудоустройстве

Как прошло обновление курса «Python-разработчик»: продуктовые кейсы, ИИ и помощь в трудоустройстве

Привет, Хабр! Меня зовут Андрей Горлов, я CEO IT-компании «Альтеркод» и программный эксперт курса «Python-разработчик» в Яндекс Практикуме. Недавно мы провели рефакторинг програ...

Subtyping и variance в Rust: о чём обычно молчат

Subtyping и variance в Rust: о чём обычно молчат

Привет, Хабр! Есть вещи в Rust, которые работают незаметно, пока не ломаются, да ломаются они странно... Компилятор указывает на место, где вы ничего плохого не делали, и говори...

FDM vs SLA: когда послойное наплавление проигрывает фотополимеру — разбор на реальном проекте

FDM vs SLA: когда послойное наплавление проигрывает фотополимеру — разбор на реальном проекте

Что, если идеальное устройство для руки — это устройство, которое почти невозможно напечатать на 3D-принтере? Именно в этом парадоксе мы застряли на несколько месяцев, когда нач...

Рекламный слот

Встроенный блок в статье

Зарезервированный партнерский слот для релевантных инструментов, сервисов и аккуратных редакционных интеграций.

Партнерский слот

Похожие статьи

Еще материалы, которые пересекаются по тегам, источнику или категории.

Как устроен мой сайт в 2026 году: Astro, 300р. VPS и никакого Vercel

Как устроен мой сайт в 2026 году: Astro, 300р. VPS и никакого Vercel

Недавно я выпустил две статьи - про подход POSSE и про SEO + GEO в 2026 году. В комментариях и личных сообщениях несколько человек попросили описать техническую часть.Решил напи...

Что такое наблюдатель и при чём здесь фильтр Калмана

Что такое наблюдатель и при чём здесь фильтр Калмана

Прочитал на Хабр статью [1], в которой автор простым языком даёт достаточно глубокое представление такого сложного и важного математического объекта как фильтр Калмана и захотел...

Как прошло обновление курса «Python-разработчик»: продуктовые кейсы, ИИ и помощь в трудоустройстве

Как прошло обновление курса «Python-разработчик»: продуктовые кейсы, ИИ и помощь в трудоустройстве

Привет, Хабр! Меня зовут Андрей Горлов, я CEO IT-компании «Альтеркод» и программный эксперт курса «Python-разработчик» в Яндекс Практикуме. Недавно мы провели рефакторинг програ...

Еще материалы от Habr

Свежие публикации и продолжение темы от той же редакции.

Открыть страницу источника
Постмортем без наказаний: культура разбора ошибок, которая реально улучшает качество проектов

Постмортем без наказаний: культура разбора ошибок, которая реально улучшает качество проектов

В инфраструктурных проектах цена ошибки может измеряться миллионами и репутацией компании. Но практика показывает: поиск виноватых редко помогает избежать повторения проблем, го...

[Перевод] Телескоп «Уэбб» обнаружил новые сверхмассивные чёрные дыры — на этот раз в карликовых галактиках

[Перевод] Телескоп «Уэбб» обнаружил новые сверхмассивные чёрные дыры — на этот раз в карликовых галактиках

Одно из явлений, которое астрономы обнаруживают при изучении галактик, — это корреляция между массой галактики и массой её сверхмассивной чёрной дыры в центре. Вопреки распростр...

Мой AI-агент рапортовал 83 успешных действия. Реальных было 16

В дашборде было 83 успешных engagement’а. В аналитике X — 16 настоящих ответов. Пять к одному. Неделю я этого не замечал.Контекст: у меня автономный AI-агент, который пишет комм...

Матрица трассируемости: Навигатор тестировщика

Матрица трассируемости: Навигатор тестировщика

Матрица трассируемости (RTM) — инструмент, который помогает QA видеть реальное покрытие требований и не тестировать «вслепую».В статье разберём: • что такое RTM и зачем она нужн...