@khomaldi
разбираюсь потихоньку

Насколько такая строка будет уникальное?

Здравствуйте. Хочу понять, как сделать 99% уникальную строку (думаю, что 100% уникальности гарантировать невозможно, так как всегда будет мизерная вероятность совпадения). Используются только цифры и английские буквы в нижнем регистре (как я понял, md5 в php как раз выдаёт в только в нижнем регистре).

Придумал вот такой алгоритм:
$prefix = 'a_' . mt_rand(1, 3);
$md5_hash_one = mb_substr(md5(md5(random_int(0, 1000)) . md5(uniqid($prefix, true))), 0, 5);
$md5_hash_two = mb_substr(md5(md5(random_int(0, 1000)) . md5(uniqid($prefix, true))), -5);

$str = $prefix . $md5_hash_one . $md5_hash_two;


Компьютер сгенерировал пока что жалкие 95 млн. строк и продолжает работу. Машина у меня не такая мощная, чтобы наблюдать результаты в сотнях млн.

Как вы думаете, алгоритм выше имеет право на существование или есть более совершенный алгоритм для генерации случайной строки?
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Не изобретайте велосипед. Возьмите UUID v4.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы