Python Glossary English

все Python 3randomпонятие

random.SystemRandom

класс random

Криптографически безопасный генератор, использующий os.urandom().

Синтаксис

random.SystemRandom()

Воспроизводимости здесь нет по определению: seed() не делает ничего, а getstate()/setstate() бросают NotImplementedError — зафиксировать выборку для теста не выйдет, для этого нужен обычный random. Если задача — пароль, токен или ключ, берите сразу модуль secrets: тот же источник энтропии, но с готовыми token_hex(), token_urlsafe() и compare_digest().

Примеры

import random
srng = random.SystemRandom()
print(srng.random())  # → криптобезопасное [0,1)
print(srng.randint(1, 100))  # → безопасное целое
print(srng.choice(['a','b','c']))  # → безопасный выбор
srng.seed(42)  # seed у SystemRandom молча игнорируется: воспроизводимости нет
try:
    srng.getstate()
except NotImplementedError:
    print('getstate not supported')  # → getstate not supported
import os
print(len(os.urandom(16)))  # → 16

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности