Python用UUID库生成唯一ID的方法示例


Posted in Python onDecember 15, 2016

UUID介绍

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

它通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性。

UUID主要有五个算法,也就是五种方法来实现。

  1. uuid1()——基于时间戳。由MAC地址、当前时间戳、随机数生成。可以保证全球范围内的唯一性,但MAC的使用同时带来安全性问题,局域网中可以使用IP来代替MAC。
  2. uuid2()——基于分布式计算环境DCE(Python中没有这个函数)。算法与uuid1相同,不同的是把时间戳的前4位置换为POSIX的UID。实际中很少用到该方法。
  3. uuid3()——基于名字的MD5散列值。通过计算名字和命名空间的MD5散列值得到,保证了同一命名空间中不同名字的唯一性,和不同命名空间的唯一性,但同一命名空间的同一名字生成相同的uuid。
  4. uuid4()——基于随机数。由伪随机数得到,有一定的重复概率,该概率可以计算出来。
  5. uuid5()——基于名字的SHA-1散列值。算法与uuid3相同,不同的是使用 Secure Hash Algorithm 1 算法。

使用示例

#! coding:utf-8
import uuid
print u"uuid1 生成基于计算机主机ID和当前时间的UUID"
print uuid.uuid1() # UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

print u"\nuuid3 基于命名空间和一个字符的MD5加密的UUID"
print uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org') #UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

print u"\nuuid4 随机生成一个UUID"
print uuid.uuid4() #'16fd2706-8baf-433b-82eb-8c7fada847da'

print u"\nuuid5 基于命名空间和一个字符的SHA-1加密的UUID"
uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org') #UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

print u"\n根据十六进制字符生成UUID"
x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')
print u"转换成十六进制的UUID表现字符"
print str(x) # '00010203-0405-0607-0809-0a0b0c0d0e0f'

结果

uuid1 生成基于计算机主机ID和当前时间的UUID
31a936a1-2339-11e6-8542-9cb70ded607f

uuid3 基于命名空间和一个字符的MD5加密的UUID
6fa459ea-ee8a-3ca4-894e-db77e160355e

uuid4 随机生成一个UUID
67e6497c-8aec-4413-9955-da86f38ff2d6

uuid5 基于命名空间和一个字符的SHA-1加密的UUID

根据十六进制字符生成UUID
转换成十六进制的UUID表现字符
00010203-0405-0607-0809-0a0b0c0d0e0f

总结

以上就是关于Python利用UUID库生成唯一ID的全部内容,希望本文的内容对大家学习或者使用python能有所帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
使用cx_freeze把python打包exe示例
Jan 24 Python
python操作摄像头截图实现远程监控的例子
Mar 25 Python
Python3 能振兴 Python的原因分析
Nov 28 Python
利用python操作SQLite数据库及文件操作详解
Sep 22 Python
python实现趣味图片字符化
Apr 30 Python
python写入文件自动换行问题的方法
Jul 05 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
详解python环境安装selenium和手动下载安装selenium的方法
Mar 17 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
python代数式括号有效性检验示例代码
Oct 04 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 Python
python switch 实现多分支选择功能
Dec 21 Python
python常见的格式化输出小结
Dec 15 #Python
python中子类继承父类的__init__方法实例
Dec 15 #Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
Dec 15 #Python
浅谈Python浅拷贝、深拷贝及引用机制
Dec 15 #Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 #Python
python中快速进行多个字符替换的方法小结
Dec 15 #Python
Python制作简易注册登录系统
Dec 15 #Python
You might like
一个简单且很好用的php分页类
2013/10/26 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
jquery中radio checked问题
2015/03/16 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
webpack 打包压缩js和css的方法示例
2018/03/20 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
Vue引入Stylus知识点总结
2020/01/16 Javascript
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python写的一个squid访问日志分析的小程序
2014/09/17 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
django正续或者倒序查库实例
2020/05/19 Python
用python实现一个简单计算器(完整DEMO)
2020/10/14 Python
jupyter使用自动补全和切换默认浏览器的方法
2020/11/18 Python
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
外国语学院毕业生自荐信
2013/10/28 职场文书
酒店led欢迎词
2014/01/09 职场文书
新郎父亲婚宴答谢词
2014/01/11 职场文书
乳制品整治工作方案
2014/05/29 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
高中政治教学反思
2016/02/23 职场文书
浅谈PHP7中的一些小技巧
2021/05/29 PHP
sql字段解析器的实现示例
2021/06/23 SQL Server
python playwright 自动等待和断言详解
2021/11/27 Python