%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/libs/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/libs/UUID.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2017 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*/
namespace humhub\libs;
use Yii;
/**
* UUID Generator Class provides static methods for creating or validating UUIDs.
*
* @package humhub.libs
* @since 0.5
* @author Luke
*/
class UUID
{
/**
* Creates an v4 UUID
*
* @return String
* @throws \yii\base\Exception
*/
public static function v4()
{
return
// 32 bits for "time_low"
bin2hex(Yii::$app->security->generateRandomKey(4)) . '-' .
// 16 bits for "time_mid"
bin2hex(Yii::$app->security->generateRandomKey(2)) . '-' .
// 16 bits for "time_hi_and_version",
// four most significant bits holds version number 4
dechex(mt_rand(0, 0x0fff) | 0x4000) . '-' .
// 16 bits, 8 bits for "clk_seq_hi_res",
// 8 bits for "clk_seq_low",
// two most significant bits holds zero and one for variant DCE1.1
dechex(mt_rand(0, 0x3fff) | 0x8000) . '-' .
// 48 bits for "node"
bin2hex(Yii::$app->security->generateRandomKey(6));
}
/**
* Validates a given UUID
*
* @param String $uuid
* @return boolean
*/
public static function is_valid($uuid)
{
return preg_match('/^\{?[0-9a-f]{8}\-?[0-9a-f]{4}\-?[0-9a-f]{4}\-?' . '[0-9a-f]{4}\-?[0-9a-f]{12}\}?$/i', $uuid) === 1;
}
}