Архив рубрики: Модули и классы Python

Работа с RabbitMQ в Python. С чего начать

Протокол AMQP

AMQP (Advanced Message Queueing Protocol) - открытый протокол для передачи сообщений между компонентами системы с низкой задержкой, на высокой скорости, а так же с высоким уровнем надежности и безопасности. Обмен сообщениями осуществляется через AMQP-брокер.

Популярные брокеры, поддерживающие AMQP: RabbitMQ (Erlang), Qpid (C++, Java), ActiveMQ (Java), StormMQ (Java), JORAM (Java).

Читать далее

Python. Генерация псевдослучайных чисел. Модуль random

Скрипты выполнялись под Python версии 2.7.9.

Генерация случайных чисел используется для:

  • создания идентификаторов сессий,
  • создания токенов (CSRF и т.п.),
  • создания произвольных паролей и кодов доступа,
  • создания произвольных последовательностей данных в играх,
  • создания уникальных номеров для маркетинговых акций (подарочные карты, розыгрыш призов по коду и т.п.).

В Python существует несколько основных модулей и классов, связанных с генерацией псевдослучайных чисел:

  • _random - реализует алгоритм Mersenne Twister, написан на языке C;
  • класс Random - наследует _random, написан на языке Python;
  • модуль os - предоставляет доступ к внешнему источнику случайных чисел, в случае Linux - это /dev/urandom;
  • класс SystemRandom наследует Random, но для генерации случайных чисел обращается к os.urandom;
  • класс WichmannHill наследует Random, реализует алгоритм Вихмана-Хилла для генерации псевдослучайных чисел.

В качестве основного генератора псевдослучайных чисел Python использует Mersenne Twister, доступ к которому предоставляет класс Random. Mersenne Twister имеет период 2 ** 19937-1. Это один из наиболее протестированных генераторов случайных чисел. Основная часть реализована на C. К сожалению, не подходит для криптографических задач.

Читать далее