<?php /** * This file is part of the ramsey/uuid library * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. * * @copyright Copyright (c) Ben Ramsey <ben@benramsey.com> * @license http://opensource.org/licenses/MIT MIT */ declare(strict_types=1); namespace Ramsey\Uuid\Generator; use Ramsey\Uuid\Exception\NameException; use Ramsey\Uuid\UuidInterface; use ValueError; use function hash; /** * DefaultNameGenerator generates strings of binary data based on a namespace, * name, and hashing algorithm */ class DefaultNameGenerator implements NameGeneratorInterface { /** @psalm-pure */ public function generate(UuidInterface $ns, string $name, string $hashAlgorithm): string { try { /** @var string|bool $bytes */ $bytes = @hash($hashAlgorithm, $ns->getBytes() . $name, true); } catch (ValueError $e) { $bytes = false; // keep same behavior than PHP 7 } if ($bytes === false) { throw new NameException(sprintf( 'Unable to hash namespace and name with algorithm \'%s\'', $hashAlgorithm )); } return (string) $bytes; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
CombGenerator.php | File | 3.23 KB | 0644 |
|
DceSecurityGenerator.php | File | 4.48 KB | 0644 |
|
DceSecurityGeneratorInterface.php | File | 1.76 KB | 0644 |
|
DefaultNameGenerator.php | File | 1.28 KB | 0644 |
|
DefaultTimeGenerator.php | File | 3.93 KB | 0644 |
|
NameGeneratorFactory.php | File | 728 B | 0644 |
|
NameGeneratorInterface.php | File | 1.08 KB | 0644 |
|
PeclUuidNameGenerator.php | File | 1.37 KB | 0644 |
|
PeclUuidRandomGenerator.php | File | 842 B | 0644 |
|
PeclUuidTimeGenerator.php | File | 912 B | 0644 |
|
RandomBytesGenerator.php | File | 1.16 KB | 0644 |
|
RandomGeneratorFactory.php | File | 738 B | 0644 |
|
RandomGeneratorInterface.php | File | 765 B | 0644 |
|
RandomLibAdapter.php | File | 1.58 KB | 0644 |
|
TimeGeneratorFactory.php | File | 1.18 KB | 0644 |
|
TimeGeneratorInterface.php | File | 1.17 KB | 0644 |
|
UnixTimeGenerator.php | File | 5.99 KB | 0644 |
|