все 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Сообщить о неточности