diff --git a/framework/Support/lib/Horde/Support/Randomid.php b/framework/Support/lib/Horde/Support/Randomid.php index de1e6da55fe..a44bad0ddb3 100644 --- a/framework/Support/lib/Horde/Support/Randomid.php +++ b/framework/Support/lib/Horde/Support/Randomid.php @@ -36,20 +36,23 @@ public function __construct() */ public function generate() { - $r = mt_rand(); - $elts = array( - $r, uniqid(), - getmypid() + mt_rand(), + getmypid(), + spl_object_hash($this) ); if (function_exists('zend_thread_id')) { $elts[] = zend_thread_id(); } if (function_exists('sys_getloadavg') && - $loadavg = sys_getloadavg()) { + ($loadavg = sys_getloadavg())) { $elts = array_merge($elts, $loadavg); } + if (function_exists('memory_get_usage')) { + $elts[] = memory_get_usage(); + $elts[] = memory_get_peak_usage(); + } shuffle($elts); @@ -58,8 +61,8 @@ public function generate() return substr(str_replace( array('/', '+', '='), array('-', '_', ''), - base64_encode(pack('H*', hash('md5', implode('', $elts)))) - ) . $r, 0, 23); + base64_encode(hash('sha1', serialize($elts), true)) + ), 0, 23); } /**