Python 3.9+randomфункция
random.randbytes
биты и байты
Возвращает bytes из n случайных байтов (Python 3.9+); воспроизводимо под seed — годится для тестов, но не для токенов и солей.
Синтаксис
random.randbytes(n)
Настоящее преимущество перед os.urandom — воспроизводимость: под фиксированным seed вернётся та же цепочка байт, и бинарные фикстуры в тестах становятся детерминированными. Для солей, сессионных токенов и вообще всего, что охраняет доступ, берут secrets.token_bytes() — этот генератор предсказуем, если понаблюдать за его выдачей.
Примеры
import random
print(len(random.randbytes(4))) # → 4
print(type(random.randbytes(2))) # → <class 'bytes'>
print(random.randbytes(0)) # → b''
print(len(random.randbytes(16).hex())) # → 32
print(random.randbytes(-1)) # → ValueError
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности