Search code examples
phpstringrandomintmcrypt

php using mcrypt_create_iv


I want to create a random ints and strings in PHP and so I decided to use mcrypt_create_iv. It is written in manual that it uses /dev/random and /dev/urandom for randomness but I can't find a simple tutorial on how to generate random Int and String using this function. I tried some code but this function gives me unreadable characters. So please can you give me a simple example of how properly I can use it?


Solution

  • If you want to generate random numbers, use mt_rand:

    $random = mt_rand(0, 999999);
    

    If you want a string, you can pass the resulting integer through a hash function:

    $random = mt_rand(0, 999999);
    $random_string = sha1($random);
    

    mcrypt_create_iv is used in cryptography. It is totally unrelated to your requirement.

    If you're looking to use the random string in security components (salts, passwords, etc.), read from /dev/urandom like so:

    $random = file_get_contents('/dev/urandom', false, null, 0, 10);
    

    ...where 10 is the length, then convert like this:

    $string = bin2hex($random);
    $number = current(unpack('L', $random));