mirror of
https://github.com/humhub/humhub.git
synced 2025-01-17 22:28:51 +01:00
66 lines
2.0 KiB
PHP
66 lines
2.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* HumHub
|
|
* Copyright © 2014 The HumHub Project
|
|
*
|
|
* The texts of the GNU Affero General Public License with an additional
|
|
* permission and of our proprietary license can be found at and
|
|
* in the LICENSE file you have received along with this program.
|
|
*
|
|
* According to our dual licensing model, this program can be used either
|
|
* under the terms of the GNU Affero General Public License, version 3,
|
|
* or under a proprietary license.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*/
|
|
|
|
/**
|
|
* 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
|
|
*/
|
|
public static function v4() {
|
|
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
|
|
// 32 bits for "time_low"
|
|
mt_rand(0, 0xffff), mt_rand(0, 0xffff),
|
|
// 16 bits for "time_mid"
|
|
mt_rand(0, 0xffff),
|
|
// 16 bits for "time_hi_and_version",
|
|
// four most significant bits holds version number 4
|
|
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
|
|
mt_rand(0, 0x3fff) | 0x8000,
|
|
// 48 bits for "node"
|
|
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* 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;
|
|
}
|
|
|
|
}
|
|
|
|
?>
|