Поиск по сайту:
Разум человека сильнее его кулаков (Ф. Рабле).

Использование UUID в Python

15.02.2021
Программа Python для проверки високосного года

В Python есть библиотека с именем UUID (универсальный уникальный идентификатор) для генерации случайного объекта длиной 128 бит. Эта библиотека генерирует уникальные идентификаторы на основе системного времени и сетевого адреса компьютера. Объект UUID неизменяем и содержит некоторые функции для создания различных уникальных идентификаторов. UUID используется для многих целей, таких как создание уникального случайного идентификатора, MAC-адреса на основе идентификатора, криптографических значений хеш-функции или случайных документов. Из этой статьи Вы узнаете, как создавать различные типы библиотек UUID, используя разные функции UUID.

 

Пример 1: Создание UUID на основе системного времени и MAC-адреса

В следующем примере показано использование функции  uuid1() модуля UUID для генерации различных значений UUID и читать и печатать различные значения свойств объекта UUID. Объект UID определяется путем вызова метода uuid1() для генерации уникального идентификатора на основе системного времени и MAC-адреса. Затем печатаются нормально сгенерированный идентификатор, соответствующее значение в байтах, целочисленное значение и шестнадцатеричное значение идентификатора. Затем в следующей части сценария печатаются свойства версии, полей, узла и времени идентификатора.

#!/usr/bin/env python3

# Импорт модуля uuid 
import uuid

# Создание случайного идентификатора с помощью uuid1()
UID = uuid.uuid1()

# Распечатать нормальный идентификатор
print("Нормальное значение:", UID)
# Распечатать байтовый идентификатор
print("Значение байта:", repr(UID.bytes))
# Распечатать целочисленный идентификатор
print("Целое число value:", UID.int)
# Распечатать шестнадцатеричный идентификатор
print(" Шестнадцатеричное значение:", UID.hex)

# Распечатать номер версии
print("Версия:", UID.version)
# Распечатать значения полей
print("Поля:", UID.fields)
# Распечатать значение MAC в шестнадцатеричном формате
print("Значение узла:", hex(UID.node))
# Распечатать значение времени
print(" Значение времени:", UID.time)

Выход

Читать  Как преобразовать файл SVG или PDF в Base64?

Вывод показывает, что значение идентификатора по умолчанию было сгенерировано в шестнадцатеричном формате путем разделения отдельных частей дефисом. Последняя часть значения идентификатора содержит MAC-адрес, который всегда будет одинаковым. Свойство узла объекта ID содержит MAC-адрес.

 

Пример 2: Создание значений SHA-1 и MD5 имени хоста с помощью uuid3() и uuid5()

Важное использование UUID – создание криптографических хеш-значений. Функции uuid3() и uuid5() модуля UUID используются для генерации MD5 и SHA-1 значения. В следующем сценарии переменная кортежа с именем hosts объявляется с тремя допустимыми URL-адресами. Значения кортежа повторяются с использованием цикла for. Затем значения MD5 и SHA-1 каждого URL-адреса вычисляются и печатаются на каждой итерации цикла.

#!/usr/bin/env python3
# Импорт модуля uuid
import uuid

# Определение кортежа из трех имен хостов 
hosts = ('www.andreyex.ru', 'www.google.com', 'zavod-gornica.ru')

# Итерировать значения кортежа, используя цикл
for hostname in hosts:
# Распечатать имя хоста
print("Hostname:", hostname)
# Используйте uuid5(), чтобы получить значение SHA-1
print('\t Значение SHA-1:', uuid.uuid5(uuid.NAMESPACE_DNS, hostname))
# Используйте uuid3() для получения значения MD5
print('\t Значение MD5:', uuid.Uuid3(uuid.NAMESPACE_DNS, hostname))

Пример 3: создание случайных чисел с помощью uuid4()

Если вы хотите , чтобы генерировать UUID случайным образом, то вы должны использовать функцию  uuid4() модуля UUID. Следующий скрипт сгенерирует пять UUID на основе случайных значений с помощью метода uuid4(). В то время как цикл используется здесь для вызова метода uuid4() пять раз и печатать случайно сгенерированные UUID значения.

#!/usr/bin/env python3

# Импорт модуля uuid
import uuid
# Инициализируем переменную
i = 1
# Повторяем цикл пять раз,
while(i<6):
# Сгенерируем случайное число
print("No-", i, ' ', uuid.uuid4())
# Увеличиваем значение на единицу
i = i + 1

 

Читать  XOR двух строк в Python

Выход

Если вы запустите сценарий несколько раз, он будет генерировать разные UUID в разное время.

 

Пример 4: Создание отсортированного UUID из списка с помощью объекта UUID

В следующем сценарии показано, как преобразовать элементы списка в UUID и распечатать значения после сортировки. Здесь переменная list_ids объявляется с четырьмя элементами списка, где каждое значение элемента должно быть в допустимом формате UUID.Сначала печатаются исходные значения list_ids. Затем каждое значение элемента списка преобразуется в UUID с помощью цикла в блоке try. Если list_ids содержит какое-либо значение элемента, которое не соответствует формату UUID, будет сгенерировано исключение ValueError и будет напечатано сообщение об ошибке. Если во время преобразования ошибок не возникает, то преобразованные UUID сортируются с помощью метода sort(). Затем с помощью цикла for распечатываются отсортированные значения UUID.

#!/usr/bin/env python3
# Импорт модуля uuid
import uuid

# Создаем список идентификаторов допустимого формата
list_Ids = [
'a4f8dd97-c8be-345b-239e-8a68e6abf800',
'673a5eaa-56c6-aaaa-bc4567-4536cd,
'dcbbaa88-5bf1-11dd-ab48-990ab200d674',
'4567aabb-89ad-77ab-67ad-aaaccdd904ae'
]

# Распечатать значения списка с помощью цикла
print(' \n Значения списка:')
for val in list_Ids:
print(val)

# Значения списка будут преобразованы в uuid и отсортированы
try:
  uuids = [ uuid.UUID(s) for s in list_Ids ]
  uuids.sort()
print(' \n Значения отсортированных uuids:')
  for val in uuids:
    print (val)

except ValueError:
# Распечатать сообщение об ошибке, если какое-либо значение списка находится в недопустимом формате
print('Плохо сформированный шестнадцатеричный UUID')

 

Выход

В выводе появится все элементы в списке имеют правильный формат UUID. Таким образом, ValueError генерироваться не будет. Первая часть вывода напечатала исходные элементы списка, а вторая часть вывода напечатала отсортированные значения UUID.

Читать  Изучение Python с нуля: Полезные шаги для начинающих программистов

 

Вывод

Вам может потребоваться сгенерировать UUID в Python для различных целей программирования. В этой статье показано, как сгенерировать различные UUID с помощью различных методов. После прочтения этой статьи и практики включенных примеров вы сможете создавать UUID в соответствии с вашими потребностями в программировании.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
С вами такое когда-нибудь случалось? Ваш iPhone вот-вот умрет из-за…

Спасибо!

Теперь редакторы в курсе.