Python通用唯一标识符uuid模块使用案例

  

<强> 1。背景知识:
  

  

UUID:通用唯一标识符(全局惟一标识符),对于所有的UUID它可以保证在空间和时间上的唯一性。它是通过MAC地址,时间戳,命名空间,随机数,伪随机数来保证生成ID的唯一性,有着固定的大小(128位)。它的唯一性和一致性特点使得可以无需注册过程就能够产生一个新的UUID。UUID可以被用作多种用途,既可以用来短时间内标记一个对象,也可以可靠的辨别网络中的持久性对象。

  

为什么要使用uuid # 63;

  

很多应用场景需要一个id,但是又不要求这个id有具体的意义,仅仅用来标识一个对象。常见的例子有数据库表的id字段。另一个例子是前端的各种UI库,因为它们通常需要动态创建各种UI元素,这些元素需要唯一的id,这时候就需要使用UUID了。

  

<强> 2。Python的uuid模块
  

  

python的uuid模块提供uuid类和函数uuid1 (), uuid3 (), uuid4 (), uuid5()来生成1,3,4,5各个版本的uuid(需要注意的是:python中没有uuid2()这个函数)。对uuid模块中最常用的几个函数总结如下:

  

1。uuid。uuid1([节点[,clock_seq]]):基于时间戳

  

使用主机ID、序列号,和当前时间来生成UUID,可保证全球范围的唯一性。但由于使用该方法生成的UUID中包含有主机的网络地址,因此可能危及隐私。该函数有两个参数,如果节点参数未指定,系统将会自动调用getnode()函数来获取主机的硬件地址。如果clock_seq参数未指定系统会使用一个随机产生的14位序列号来代替。

  

2。uuid。uuid3(命名空间、名称):基于名字的MD5散列值

  

通过计算命名空间和名字的MD5散列值来生成UUID,可以保证同一命名空间中不同名字的唯一性和不同命名空间的唯一性,但同一命名空间的同一名字生成的UUID相同。

  

4。uuid.uuid4():基于随机数

  

通过随机数来生成UUID。使用的是伪随机数有一定的重复概率。

  

5。uuid。uuid5(命名空间、名称):基于名字的sha - 1散列值

  

通过计算命名空间和名字的sha - 1散列值来生成UUID,算法与uuid.uuid3()相同。

  

<强> 3。uuid模块的典型使用方法:

        在在在进口uuid      在在在#做一个UUID基于主机ID和当前时间   在在在uuid.uuid1 ()   UUID (“a8098c1a f86e - 11 - da bd1a - 00112444 be1e”)      在在在#做一个UUID使用MD5散列的名称空间UUID和一个名字   在在在uuid.uuid3 (uuid。NAMESPACE_DNS, ' python.org ')   UUID (' 6 fa459ea ee8a - 3 ca4 - 894 e - db77e160355e”)      在在在#做一个随机的UUID   在在在uuid.uuid4 ()   UUID (16 fd2706 - 8 - baf - 433 b - 82 eb - 8 c7fada847da”)      在在在#做一个UUID使用名称空间的sha - 1哈希UUID和一个名字   在在在uuid.uuid5 (uuid。NAMESPACE_DNS, ' python.org ')   UUID (' 886313 e1 - 3 - b8a - 5372 - 9 - b90 - 0 - c9aee199e5d”)      在在在从一个十六进制数字的字符串#做一个UUID(括号和连字符忽略)   在在在x=uuid.UUID (' {00010203 - 0405 - 0607 - 0809 - 0 - a0b0c0d0e0f}”)      在在在# UUID转换为十六进制数字的字符串在标准形式   在在在str (x)   00010203 - 0405 - 0607 - 0809 - 0 - a0b0c0d0e0f”      在在在#得到原始16字节的UUID   在在在x.bytes   “\ x00 \ x01 \ x02 \ x03 \ x04 \ x05 \ x06 \ x07 \ t (\ \ n \ x0b \ x0c \ r \ x0e \ x0f '      在在在从一个16字节字符串#做一个UUID   在在在uuid.UUID(字节=x.bytes)   UUID (00010203 - 0405 - 0607 - 0809 - 0 - a0b0c0d0e0f”)      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Python通用唯一标识符uuid模块使用案例