В основном я конвертирую метод шифрования PHP CodeIgniter в Python, но я застрял во время преобразования библиотеки PHP mcrypt_create_iv в Python.Python эквивалентно mcrypt_create_iv в PHP
Спасибо заранее.
В основном я конвертирую метод шифрования PHP CodeIgniter в Python, но я застрял во время преобразования библиотеки PHP mcrypt_create_iv в Python.Python эквивалентно mcrypt_create_iv в PHP
Спасибо заранее.
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
является неблокирующим и безопасным.