Я хочу создать случайные ints и строки в PHP, поэтому я решил использовать mcrypt_create_iv. В руководстве написано, что он использует/dev/random и/dev/urandom для случайности, но я не могу найти простой учебник о том, как генерировать случайные Int и String, используя эту функцию. Я пробовал код, но эта функция дает мне нечитаемые символы. Поэтому, пожалуйста, вы можете дать мне простой пример того, как правильно я могу его использовать?php using mcrypt_create_iv
ответ
Если вы хотите, чтобы генерировать случайные числа, используйте mt_rand
:
$random = mt_rand(0, 999999);
Если вы хотите строку, вы можете передать полученное число через хэш-функции:
$random = mt_rand(0, 999999);
$random_string = sha1($random);
mcrypt_create_iv
используется в криптография. Это совершенно не связано с вашим требованием.
Если вы хотите, чтобы использовать случайную строку в компонентах безопасности (соли, пароли и т.д.), читать /dev/urandom
так:
$random = file_get_contents('/dev/urandom', false, null, 0, 10);
... где 10
длина, а затем преобразовать как это:
$string = bin2hex($random);
$number = current(unpack('L', $random));
mt_rand НЕ безопасен !!!!!!!!!!!!! Я хочу использовать/dev/random или/dev/urandom – Irakli
Google, и вы обнаружите, что гуру php говорят, что это НЕ безопасный метод. Единственный безопасный метод - использование/dev/urandom – Irakli
@ user1228636: Безопасность относительна. Вы не упомянули о том, чего хотите, поэтому, если вы этого не сделаете, мне все равно, безопасно это или нет в соответствии с вашими стандартами. Вам нужны случайные числа? Используйте 'mt_rand'. Вы хотите читать из '/ dev/urandom', просто прочитайте его. – netcoder
рандов (интермедиат $ мин, Int макс $) использовать это для случайных чисел и строк взять md5 или sha1 хэш случайного числа;
Я хочу использовать/dev/urandom, потому что это самый безопасный метод. этот метод НЕ безопасен вообще – Irakli
Во-первых, как вы хотите использовать случайные строки, для чего вы хотите их использовать? Если для генерирования солей для паролей вы можете использовать эту функцию для генерации более качественных случайных строк, чем генерируемых uniqid() или mt_rand(). См. Secure Password Hashing и см. Код ниже о том, как сгенерировать случайную строку, используя mcrypt_create_iv()). Если вы хотите, чтобы строки для идентификации пользователя, почему бы не попробовать UUID. Использование mcrypt_create_iv самостоятельно будет генерировать нечитаемые символы. Чтобы «преобразовать» эти нечитаемые символы на что-то читаемое использование функции BIN2HEX так:
$random_string = bin2hex(mcrypt_create_iv(30, [MCRYPT_DEV_RANDOM|MCRYPT_DEV_URANDOM|MCRYPT_RAND]));
The «30» является размером вектора инициализации, который вы хотите получить. Помните, что использование MCRYPT_DEV_URANDOM и MCRYPT_DEV_RANDOM на машинах Windows с версиями PHP старше версии 5.3.0 не будет работать. Вместо этого используйте MCRYPT_RAND для таких случаев.
Благодарим вас, вы первый, кто поставил краткий и чистый пример, я не могу найти его в Интернете. – Lyoneel
- 1. использования mcrypt_create_iv в PHP
- 2. Python эквивалентно mcrypt_create_iv в PHP
- 3. mcrypt_create_iv возвращает неопределенную переменную
- 4. Использование mcrypt_create_iv для создания соли?
- 5. `mcrypt_create_iv` Stalls, но только через Apache
- 6. Json encoding mcrypt_create_iv salt error
- 7. PHP mcrypt_create_iv возвращает вопросительные знаки и неправильную длину - CodeIgniter
- 8. php in php using bootstrap
- 9. using get token в регистрации php
- 10. PHP Composer using define
- 11. logout using cookies php
- 12. Php include using ajax
- 13. PHP Удалить # using preg
- 14. Shutdown server using PHP
- 15. Html using php variables
- 16. using regex и php
- 17. PHP - using set_include_path правильно
- 18. Inject JavaScript using PHP
- 19. get json using php
- 20. using php __DIR__
- 21. PHP Login using Session
- 22. sql using LIKE: php
- 23. using php symfony framework
- 24. paly videos using php
- 25. PHP login using MySql
- 26. Cronjob like using PHP
- 27. php form using array
- 28. PHP exec_shell using unrar.exe
- 29. php sql using odbc
- 30. PHP Regex using preg_split
Цель 'mcrypt_create_iv' - не создавать случайные строки. Его целью является создание криптографического вектора инициализации (следовательно, * mcrypt * и * iv *). – netcoder
Запуск base64_encode на выходе mcrypt_create_iv также является опцией, если вы хотите использовать меньший набор символов. – yoshiwaan