Python Glossary English

Python 3.6+Linuxosфункция

os.getrandom

os — случайность

Возвращает случайные байты напрямую от системного генератора (getrandom); может блокироваться до готовности энтропии. Доступно на Linux.

Синтаксис

os.getrandom(...)

Для прикладного кода удобнее secrets или os.urandom: они переносимы и не требуют флагов. Функция может заблокироваться при раннем старте системы, пока генератор не накопил энтропию; флаг GRND_NONBLOCK превращает ожидание в BlockingIOError. Модуль random для паролей и токенов не годится — он предсказуем.

Примеры

import os
print(len(os.getrandom(16)))   # → ? только Linux: 16 (на Windows/macOS функции нет — переносимый аналог os.urandom)
key = os.getrandom(32, os.GRND_NONBLOCK)   # → ? только Linux: BlockingIOError, если энтропия ещё не набрана
print(len(key))   # → 32
print(len(os.getrandom(0)))   # → ? только Linux: 0, граничный случай — пустой запрос
print(os.getrandom(4) == os.getrandom(4))   # → ? только Linux: False, каждый вызов даёт новые байты

См. также

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