• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/security/random.php
  • Класс: BitrixMainSecurityRandom
  • Вызов: Random::getPseudoRandomBlock
static function getPseudoRandomBlock()
{
	$bytes = openssl_random_pseudo_bytes(static::RANDOM_BLOCK_LENGTH);
	if ($bytes && strlen($bytes) >= static::RANDOM_BLOCK_LENGTH)
	{
		return substr($bytes, 0, static::RANDOM_BLOCK_LENGTH);
	}

	$bytes = '';
	for ($i=0; $i < static::RANDOM_BLOCK_LENGTH; $i++)
	{
		$bytes .= pack('S', mt_rand(0,0xffff));
	}

	return hash('sha512', $bytes, true);
}