Метод bytes
Метод bytes класса Generator генерирует случайные байты.
Метод принимает один обязательный параметр - длину генерируемой
последовательности байтов. Результат может быть возвращен в виде
объекта bytes или массива NumPy с типом uint8,
в зависимости от значения параметра out.
Синтаксис
generator.bytes(length, out=None)
Параметр length задает количество генерируемых байтов.
Параметр out определяет выходной формат:
если None, возвращается объект bytes;
если передан массив ndarray с типом uint8,
результат записывается в этот массив.
Пример
Сгенерируем 5 случайных байтов:
import numpy as np
rng = np.random.default_rng(0)
res = rng.bytes(5)
print(res)
Результат выполнения кода:
b'\xfb\x97\xc4\xb7\x03'
Полученные байты представляют собой случайные значения в диапазоне от 0 до 255.
Пример
Сгенерируем 10 случайных байтов и сохраним в массив NumPy:
import numpy as np
rng = np.random.default_rng(0)
arr = np.empty(10, dtype=np.uint8)
rng.bytes(10, out=arr)
print(arr)
Результат выполнения кода:
[251 151 196 183 3 249 114 111 155 36]
Массив arr теперь содержит случайные байты,
сгенерированные генератором.
Пример
Создадим массив из 8 случайных байтов и преобразуем его в строку:
import numpy as np
rng = np.random.default_rng(1)
arr = np.frombuffer(rng.bytes(8), dtype=np.uint8)
print(arr)
# Преобразование байтов в строку
bytes_data = rng.bytes(8)
print(bytes_data.decode('latin-1'))
Результат выполнения кода:
[135 58 144 239 216 40 166 38]
"‡:ïØ(¦&"
Случайные байты могут использоваться для генерации случайных строк или ключей шифрования.
Пример
Сгенерируем 16 случайных байтов и отобразим их в шестнадцатеричном формате:
import numpy as np
rng = np.random.default_rng(2)
res = rng.bytes(16)
print(res.hex())
Результат выполнения кода:
"2de9effdb2ad731f4b1fe70c61308fad"
Шестнадцатеричное представление часто используется для работы с криптографическими ключами или хешами.
Смотрите также
-
класс
Generator,
который предоставляет методы для генерации случайных данных -
метод
random,
который генерирует случайные числа в интервале [0.0, 1.0) -
метод
integers,
который генерирует случайные целые числа из заданного диапазона -
метод
choice,
который генерирует случайные выборки из заданного массива