Так, ти можеш. Оскільки у GUID довжина 128 біт, то, мабуть, є й хвилинна можливість зіткнення, але слово "хвилина" ніде не є досить сильним. Є так багато GUID, що якщо ви генеруєте їх кілька трильйонів випадковим чином, ви все ж більше шанси потрапити на метеорит, ніж мати навіть одне зіткнення (з Вікіпедії ). І якщо ви не генеруєте їх випадковим чином, але, наприклад, використовуєте алгоритм MAC-адреса та часу, то вони також будуть унікальними, оскільки MAC-адреси унікальні серед комп'ютерів, а часові позначки унікальні на вашому комп’ютер.
Редагувати 1: Щоб відповісти на ваше бонусне питання, оптимальним способом перевірити набір GUID на унікальність - просто припустити, що всі вони унікальні. Чому? Тому що, враховуючи кількість створених вами GUID, шанси зіткнення GUID менші, ніж шанси космічного променя, який трохи загорнеться в пам’яті вашого комп’ютера та викручує відповідь, надану будь-яким «точним» алгоритмом, який би вам не доглядав бігти. (Дивіться цю відповідь StackOverflow на математику.)
Існує величезна кількість GUIDs там. Щоб процитувати Посібник автостопом Дугласа Адамса по Галактиці :
"Космос, - йдеться, - великий". Дійсно великий. Ви просто не повірите, наскільки він надзвичайно великий, мабуть, великий. Я маю на увазі, ви можете подумати, що це довгий шлях до хіміка, але це просто арахіс до космосу , слухай ... "
А оскільки у Всесвіті близько 7 × 10 22 зірок і трохи менше 2 128 GUID, то приблизно 4,86 × 10 15 - майже п’ять квадрильйонів - GUID для кожної зірки. Якби кожна з цих зірок мала світ з процвітаючим населенням, як у нас, то навколо кожної зірки кожен чоловік чи іноземець, який коли-небудь жив, мав би право на понад сорок п’ять тисяч GUID. Для кожної людини в історії біля кожної зірки у Всесвіті. Простір GUID знаходиться на тому ж рівні величезності, що і розмір усього Всесвіту. Вам не потрібно хвилюватися.
( Edit 2: Розмірковуючи про це: нічого собі , я не зрозумів. Себе , що це означає ідентифікатор GUID простір незбагненно масивне Я начебто в захваті від нього ...)