Возникла необходимость генерировать UUID.
Почитав RFC4122 подходящей оказалась v4 (пункт 4.4)
function generateUUIDv4()
{
$uuid = unpack('h8time_low/S3octet/h12node', random_bytes(16));
return sprintf("%'08s-%'04x-%'04x-%'04x-%'012s", $uuid['time_low'], $uuid['octet1'],
$uuid['octet2'] & 0x0fff | 0x4000, $uuid['octet3'] & 0xbfff | 0x8000, $uuid['node']);
}
Почитав RFC4122 подходящей оказалась v4 (пункт 4.4)
function generateUUIDv4()
{
$uuid = unpack('h8time_low/S3octet/h12node', random_bytes(16));
return sprintf("%'08s-%'04x-%'04x-%'04x-%'012s", $uuid['time_low'], $uuid['octet1'],
$uuid['octet2'] & 0x0fff | 0x4000, $uuid['octet3'] & 0xbfff | 0x8000, $uuid['node']);
}