2016-01-28 2 views

ответ

5

mcrypt_create_iv() - это просто интерфейс PHP для псевдослучайных генераторов уровня ОС (это даже не часть libmcrypt, вопреки тому, что подразумевает название функции).

Python предоставляет такие интерфейсы через os module, и вам нужно os.urandom().

Например, если вам нужно перевести mcrypt_create_iv(16, MCRYPT_DEV_URANDOM) в Python, вам нужно будет написать os.urandom(16).


Для уточнения возможной путаницы:

Вы may've используется MCRYPT_DEV_RANDOM или MCRYPT_RAND в PHP, но нет буквально никакой причины, чтобы использовать один из тех, кто вместо MCRYPT_DEV_URANDOM - это просто лучше всех измеримых критерии:

  • MCRYPT_RAND, в частности, не подходит для криптографических целей, или другими словами - это небезопасно.
  • MCRYPT_DEV_RANDOM может и будет блокироваться до новых Данные энтропии доступны. Вы не хотите блокировать в веб-приложении и миф, что /dev/random как-то лучше, чем /dev/urandom из-за блокировки был debunked.

MCRYPT_DEV_URANDOM является неблокирующим и безопасным.

Смежные вопросы