com_create_guid

(PHP 5, PHP 7)

com_create_guidGenerate a globally unique identifier (GUID)

Описание

string com_create_guid ( void )

Generates a Globally Unique Identifier (GUID).

A GUID is generated in the same way as DCE UUID's, except that the Microsoft convention is to enclose a GUID in curly braces.

Возвращаемые значения

Returns the GUID as a string.

Смотрите также

  • uuid_create() in the PECL uuid extension

Коментарии

Автор:
The phunction PHP framework (http://sourceforge.net/projects/phunction/) uses the following function to generate valid version 4 UUIDs:

<?php

function GUID()
{
    if (
function_exists('com_create_guid') === true)
    {
        return 
trim(com_create_guid(), '{}');
    }

    return 
sprintf('%04X%04X-%04X-%04X-%04X-%04X%04X%04X'mt_rand(065535), mt_rand(065535), mt_rand(065535), mt_rand(1638420479), mt_rand(3276849151), mt_rand(065535), mt_rand(065535), mt_rand(065535));
}

?>

The output generated by the sprintf() and mt_rand() calls is identical to com_create_guid() results.
2010-08-16 18:59:39
http://php5.kiev.ua/manual/ru/function.com-create-guid.html
Use more cryptographically strong algorithm to generate pseudo-random bytes and format it as GUID v4 string

function guidv4()
{
    if (function_exists('com_create_guid') === true)
        return trim(com_create_guid(), '{}');

    $data = openssl_random_pseudo_bytes(16);
    $data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0100
    $data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10
    return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
}
2015-08-27 15:37:47
http://php5.kiev.ua/manual/ru/function.com-create-guid.html
Автор:
If you're going to generate random UUIDs, at least make them conform:

* The uppermost byte of the third stanza must be 4
* the uppermost byte of the fourth stanza may be any of (8 9 a b)

see also: The wikipedia page for UUIDs: https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_.28random.29
2015-11-08 09:09:52
http://php5.kiev.ua/manual/ru/function.com-create-guid.html
Here's my final version of a GUIDv4 function (based on others work here) that should work on all platforms and gracefully fallback to less cryptographically secure version if others are not supported...

<?php
/**
 * Returns a GUIDv4 string
 *
 * Uses the best cryptographically secure method 
 * for all supported pltforms with fallback to an older, 
 * less secure version.
 *
 * @param bool $trim
 * @return string
 */
function GUIDv4 ($trim true)
{
   
// Windows
   
if (function_exists('com_create_guid') === true) {
        if (
$trim === true)
            return 
trim(com_create_guid(), '{}');
        else
            return 
com_create_guid();
    }

   
// OSX/Linux
   
if (function_exists('openssl_random_pseudo_bytes') === true) {
       
$data openssl_random_pseudo_bytes(16);
       
$data[6] = chr(ord($data[6]) & 0x0f 0x40);    // set version to 0100
       
$data[8] = chr(ord($data[8]) & 0x3f 0x80);    // set bits 6-7 to 10
       
return vsprintf('%s%s-%s-%s-%s-%s%s%s'str_split(bin2hex($data), 4));
    }

   
// Fallback (PHP 4.2+)
   
mt_srand((double)microtime() * 10000);
   
$charid strtolower(md5(uniqid(rand(), true)));
   
$hyphen chr(45);                  // "-"
   
$lbrace $trim "" chr(123);    // "{"
   
$rbrace $trim "" chr(125);    // "}"
   
$guidv4 $lbrace.
             
substr($charid08).$hyphen.
             
substr($charid84).$hyphen.
             
substr($charid124).$hyphen.
             
substr($charid164).$hyphen.
             
substr($charid2012).
             
$rbrace;
    return 
$guidv4;
}
?>
2016-04-14 13:07:19
http://php5.kiev.ua/manual/ru/function.com-create-guid.html
function create_guid() { // Create GUID (Globally Unique Identifier)
        $guid = '';
        $namespace = rand(11111, 99999);
        $uid = uniqid('', true);
        $data = $namespace;
        $data .= $_SERVER['REQUEST_TIME'];
        $data .= $_SERVER['HTTP_USER_AGENT'];
        $data .= $_SERVER['REMOTE_ADDR'];
        $data .= $_SERVER['REMOTE_PORT'];
        $hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data)));
        $guid = substr($hash,  0,  8) . '-' .
                substr($hash,  8,  4) . '-' .
                substr($hash, 12,  4) . '-' .
                substr($hash, 16,  4) . '-' .
                substr($hash, 20, 12);
        return $guid;
    }
2020-01-22 16:26:27
http://php5.kiev.ua/manual/ru/function.com-create-guid.html

    Поддержать сайт на родительском проекте КГБ