@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 млн. строк и продолжает работу. Машина у меня не такая мощная, чтобы наблюдать результаты в сотнях млн.

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

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

Похожие вопросы