Пример #1
0
 /**
  * Create a name based UUID using a SHA1 hash and a namespace UUID.
  * 
  * @param UUID $namespace
  * @param string $name
  * @return UUID
  */
 public static function createNameBased(UUID $namespace, string $name) : UUID
 {
     $hash = str_split(sha1($namespace->toBinary() . $name), 4);
     return new static(sprintf('%04s%04s-%04s-%04x-%04x-%04s%04s%04s', $hash[0], $hash[1], $hash[2], hexdec($hash[3]) & 0xfff | 0x5000, hexdec($hash[4]) & 0x3fff | 0x8000, $hash[5], $hash[6], $hash[7]));
 }