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

  python中uuid模块提供UUID类和函数uuid1()、uuid3()、uuid4()、uuid5()来生成各个版本的UUID。


  1. uuid.uuid1([node[, clock_seq]]):基于时间戳

  使用主机ID,序列号,和当前时间来生成UUID,可保证全球范围的唯一性。但由于使用该方法生成的UUID中包含有主机的网络地址,因此可能危及隐私,不安全。

  该函数有两个参数,如果node参数未指定,系统将会自动调用getnode()函数来获取主机的硬件地址。如果clock_seq参数未指定系统会使用一个随机产生的14位序列号来代替。

  2. uuid.uuid3(namespace, name):基于名字的MD5散列值

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

  3. uuid.uuid4():基于随机数

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

  4. uuid.uuid5(namespace, name):基于名字的SHA-1散列值

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

  5. uuid.getnode():以48位正整数形式获取硬件地址

  第一次运行时,它可能会启动一个单独的程序

  6. uuid模块中支持的四种命名空间,这些命名空间也是uuid对象,根据一定的规则计算得出

  uuid.NAMESPACE_DNS:指定此名称空间后,名称字符串是标准域名。

  uuid.NAMESPACE_URL:指定此名称空间后,名称字符串是URL。

  uuid.NAMESPACE_OID:指定此名称空间后,名称字符串为ISO OID。

  uuid.NAMESPACE_X500:指定此名称空间后,名称字符串是DER或文本输出格式的X.500 DN。

  7. uuid.UUID(hex=None,bytes=None,bytes_le=None,fields=None,int=None,version=None,*,is_safe=SafeUUID.unknown)

  uuid实例对象的属性:

    UUID.bytes:UUID为16字节的字符串。

    UUID.bytes_le:UUID为16字节的字符串。

    UUID.fields:UUID的六个整数字段的元组,也可以作为六个单独的属性和两个派生的属性使用。

    

    UUID.hex:UUID为32个字符的十六进制字符串。

    UUID.int:UUID为128位整数。

    UUID.version:UUID版本号。

    UUID.is_safe:表示平台是否以多处理安全的方式生成了UUID。


使用

  • Python中没有基于DCE的,所以uuid2可以忽略
  • uuid4存在概率性重复,由无映射性,最好不用
  • 若在Global的分布式计算环境下,最好用uuid1
  • 若有名字的唯一性要求,最好用uuid3或uuid5

uuid模块的更多相关文章

  1. 每天一个小程序—第0001题(uuid模块)

    第 0001 题:  做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? 一开始以为是 ...

  2. Python内置模块之time、random、hashlib、OS、sys、UUID模块

    Python常用模块 1.time模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间 ...

  3. Python标准库 -- UUID模块(生成唯一标识)

    UUID是什么: UUID: 通用唯一标识符 ( Universally Unique Identifier ),对于所有的UUID它可以保证在空间和时间上的唯一性,也称为GUID,全称为: UUID ...

  4. python中的 uuid 模块使用示例

    此模块提供不可变的 UUID 对象 (类 uuid) 和函数uuid1().uuid3().uuid4().uuid5(), 用于生成在 RFC 4122 中指定版本1.3.4和5UUIDs .如果你 ...

  5. VUE - 引入 npm 安装的模块 以及 uuid模块的使用

    <template>   <div>       <form @submit.prevent="addTodo">         <in ...

  6. Python之uuid模块

    UUID是128位的全局唯一标识符,通常由32字节的字符串表示. 它可以保证时间和空间的唯一性,也称为GUID,全称为: UUID —— Universally Unique IDentifier P ...

  7. [py]Python使用UUID库生成唯一ID(uuid模块)

    https://www.cnblogs.com/dkblog/archive/2011/10/10/2205200.html uuid介绍 UUID是128位的全局唯一标识符,通常由32字节的字符串表 ...

  8. Python3之uuid模块

    一. 简介 UUID是128位的全局唯一标识符,通常由32字节的字母串表示.它可以保证时间和空间的唯一性,也称为GUID. 全称为:UUID--Universally Unique IDentifie ...

  9. python常用uuid模块

    uuid.uuid4(),会根据我们当前的网卡和时间生成的一个随机字符串. 注意:uuid.uuid4()生成的是一个对象,需要强转为字符串. uid = str(uuid.uuid4()) #当前网 ...

随机推荐

  1. FFT/NTT基础题总结

    在学各种数各种反演之前把以前做的$FFT$/$NTT$的题整理一遍 还请数论$dalao$口下留情 T1快速傅立叶之二 题目中要求求出 $c_k=\sum\limits_{i=k}^{n-1}a_i* ...

  2. 基于Django的Rest Framework框架的频率组件

    0|1一.频率组件的作用 在我们平常浏览网站的时候会发现,一个功能你点击很多次后,系统会让你休息会在点击,这其实就是频率控制,主要作用是限制你在一定时间内提交请求的次数,减少服务器的压力. modle ...

  3. what is variable?

    what is variable? variable:pytorch中的变量,存储tensor,数值会不断变动 在 Torch 中的 Variable 就是一个存放会变化的值的地理位置. 里面的值会不 ...

  4. iOS:获取一周7天的日期(年-月-日-星期)

    一.介绍 在开发中,日期的使用绝对是离不了的,跟业务的关联性太强了,例如课程表.有的时候我们不需要课程表,但是需要获取一周7天的日期,这一周内的日期,我觉得有两种理解: 1.获取当天开始的一周日期,当 ...

  5. MyCat(转)

    https://www.cnblogs.com/bingosblog/p/7171501.html    http://www.cnblogs.com/joylee/p/7513038.html ht ...

  6. sql语句规范参考

    公司有SQL语句规范的参考,这里特别做个笔记. 书写风格 1. 语句关键字应全部使用小写. 2. 引用字符时应使用单引号.如:update testable set idcol=’abcd’. 3. ...

  7. Vue基础框架

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <!-- 设置语言为 ...

  8. Win10 手动安装 WSL 并修改默认登录用户为 root

    首先要在"程序和功能"里面开启这个服务 然后重启系统使其生效. 然后打开 PowerShell,输入: Invoke-WebRequest -Uri https://aka.ms/ ...

  9. java servlet 初学笔记

    1. 页面HTML标签中的中文乱码 在 doGet 或者 doPost 等方法内的第一行添加: response.setCharacterEncoding("gbk"); 2. 避 ...

  10. Lucene为什么要加Segment概念

    目前我感觉加了Segment有两个好处: 1. 简化了写文档的逻辑,解耦了写文档和读文档.如果没有Segment在写文档的时候势必要修改整个索引,所以会影响到文档的读 2. 提升了写文档的速度,由于只 ...