original_string: public static function v5(string $namespace, string $name)
      {
          if (!Validate::isValidUUID($namespace)) {
              return false;
          }
  
          // Get hexadecimal components of namespace
          $nhex = str_replace(array('-', '{', '}'), '', $namespace);
  
          // Binary Value
          $nstr = '';
  
          // Convert Namespace UUID to bits
          for ($i = 0; $i < strlen($nhex); $i += 2) {
              $nstr .= \chr(hexdec($nhex[$i] . $nhex[$i + 1]));
          }
  
          // Calculate hash value
          $hash = sha1($nstr . $name);
  
          return sprintf('%08s-%04s-%04x-%04x-%12s',
  
              // 32 bits for "time_low"
              substr($hash, 0, 8),
  
              // 16 bits for "time_mid"
              substr($hash, 8, 4),
  
              // 16 bits for "time_hi_and_version",
              // four most significant bits holds version number 5
              (hexdec(substr($hash, 12, 4)) & 0x0fff) | 0x5000,
  
              // 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
              (hexdec(substr($hash, 16, 4)) & 0x3fff) | 0x8000,
  
              // 48 bits for "node"
              substr($hash, 20, 12)
          );
      }
code: public static function v5(string $namespace, string $name)
      {
          if (!Validate::isValidUUID($namespace)) {
              return false;
          }
  
          // Get hexadecimal components of namespace
          $nhex = str_replace(array('-', '{', '}'), '', $namespace);
  
          // Binary Value
          $nstr = '';
  
          // Convert Namespace UUID to bits
          for ($i = 0; $i < strlen($nhex); $i += 2) {
              $nstr .= \chr(hexdec($nhex[$i] . $nhex[$i + 1]));
          }
  
          // Calculate hash value
          $hash = sha1($nstr . $name);
  
          return sprintf('%08s-%04s-%04x-%04x-%12s',
  
              // 32 bits for "time_low"
              substr($hash, 0, 8),
  
              // 16 bits for "time_mid"
              substr($hash, 8, 4),
  
              // 16 bits for "time_hi_and_version",
              // four most significant bits holds version number 5
              (hexdec(substr($hash, 12, 4)) & 0x0fff) | 0x5000,
  
              // 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
              (hexdec(substr($hash, 16, 4)) & 0x3fff) | 0x8000,
  
              // 48 bits for "node"
              substr($hash, 20, 12)
          );
      }
code_tokens: public static function v5 ( string $ namespace , string $ name ) { if ( ! Validate :: isValidUUID ( $ namespace ) ) { return false ; } // Get hexadecimal components of namespace $ nhex = str_replace ( array ( '-' , '{' , '}' ) , '' , $ namespace ) ; // Binary Value $ nstr = '' ; // Convert Namespace UUID to bits for ( $ i = 0 ; $ i < strlen ( $ nhex ) ; $ i += 2 ) { $ nstr .= \ chr ( hexdec ( $ nhex [ $ i ] . $ nhex [ $ i + 1 ] ) ) ; } // Calculate hash value $ hash = sha1 ( $ nstr . $ name ) ; return sprintf ( '%08s-%04s-%04x-%04x-%12s' , // 32 bits for "time_low" substr ( $ hash , 0 , 8 ) , // 16 bits for "time_mid" substr ( $ hash , 8 , 4 ) , // 16 bits for "time_hi_and_version", // four most significant bits holds version number 5 ( hexdec ( substr ( $ hash , 12 , 4 ) ) & 0x0fff ) | 0x5000 , // 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 ( hexdec ( substr ( $ hash , 16 , 4 ) ) & 0x3fff ) | 0x8000 , // 48 bits for "node" substr ( $ hash , 20 , 12 ) ) ; }
docstring: Generate identifier of 5th version
  
  @param   string $namespace
  @param   string $name
  @return  bool|string
docstring_tokens: Generate identifier of 5th version