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 (например, из os.urandom) не обеспечивает криптографической стойкости паролей, демонстрируется возможность восстановления 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

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

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

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

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

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

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

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