Универсально уникальный идентификатор (UUID) или глобально уникальный идентификатор (GUID) - это 128-битное число, используемое для идентификации информации.
- UUID уникален для практических целей: вероятность его дублирования очень близка к нулю.
- UUID не зависят от центрального органа или координации между теми, кто их генерирует.
Строковое представление UUID состоит из 32 шестнадцатеричных цифр, отображаемых в 5 группах, разделенных дефисами. Например:
123e4567-e89b-12d3-a456-426655440000
Пример генератора UUID
Вы можете использовать функцию rand.Read из пакета crypto/rand для генерации базового UUID.
b := make([]byte, 16)
_, err := rand.Read(b)
if err != nil {
log.Fatal(err)
}
uuid := fmt.Sprintf("%x-%x-%x-%x-%x",
b[0:4], b[4:6], b[6:8], b[8:10], b[10:])
fmt.Println(uuid)
Вывод:
9438167c-9493-4993-fd48-950b27aad7c9
Ограничения
Этот UUID не соответствует RFC 4122. В частности, он не содержит номеров версий или вариантов.
Предупреждение: вызов rand.Read возвращает ошибку в случае сбоя основного системного вызова. Например, если он не может прочитать /dev/urandom в системе Unix, или если CryptAcquireContext не работает в системе Windows.
Читайте также:
- Go Code Review Comments: Пакет Crypto Rand
- Что такое seed (начальное число, семя) в генераторе случайных чисел?
- Генерация случайных чисел, символов и элементов срезов в Golang
- Создать случайную строку (пароль) в Golang
- Удобный доступ к crypto/rand для создания случайных чисел в Golang
Комментариев нет:
Отправить комментарий