diff --git a/src/Symfony/Component/Uid/UuidV4.php b/src/Symfony/Component/Uid/UuidV4.php index 4d7b71e1d2cc..30212a7e85d2 100644 --- a/src/Symfony/Component/Uid/UuidV4.php +++ b/src/Symfony/Component/Uid/UuidV4.php @@ -25,7 +25,12 @@ class UuidV4 extends Uuid public function __construct(string $uuid = null) { if (null === $uuid) { - $this->uuid = uuid_create(static::TYPE); + $uuid = random_bytes(16); + $uuid[6] = $uuid[6] & "\x0F" | "\x4F"; + $uuid[8] = $uuid[8] & "\x3F" | "\x80"; + $uuid = bin2hex($uuid); + + $this->uuid = substr($uuid, 0, 8).'-'.substr($uuid, 8, 4).'-'.substr($uuid, 12, 4).'-'.substr($uuid, 16, 4).'-'.substr($uuid, 20, 12); } else { parent::__construct($uuid); }