ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilPasswordUtils.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2014 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
9 class ilPasswordUtils
10 {
16  public static function getBytes($length)
17  {
18  if(!defined('PHP_WINDOWS_VERSION_BUILD') && extension_loaded('openssl'))
19  {
20  $secure = null;
21  $rand = openssl_random_pseudo_bytes($length, $secure);
22  if(false !== $rand && $secure === true)
23  {
24  return $rand;
25  }
26  }
27 
28  if(extension_loaded('mcrypt'))
29  {
30  // PHP bug #55169
31  // @see https://bugs.php.net/bug.php?id=55169
32  if(
33  strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN' ||
34  version_compare(PHP_VERSION, '5.3.7') >= 0
35  )
36  {
37  $rand = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM);
38  if($rand !== false && strlen($rand) === $length)
39  {
40  return $rand;
41  }
42  }
43  }
44 
45  // Default random string generation
46  $rand = '';
47  for($i = 0; $i < $length; $i++)
48  {
49  $rand .= chr(mt_rand(0, 255));
50  }
51  return $rand;
52  }
53 }
static getBytes($length)
Generate random bytes using OpenSSL or Mcrypt and mt_rand() as fallback.
defined( 'APPLICATION_ENV')||define( 'APPLICATION_ENV'
Definition: bootstrap.php:27