uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现。有时也称guid(global

unique identifier)。python中自带了uuid模块来进行uuid的生成和管理工作。

python中的uuid模块基于信息如MAC地址、时间戳、命名空间、随机数、伪随机数来uuid。具体方法有如下几个:

uuid.uuid1()  基于MAC地址,时间戳,随机数来生成唯一的uuid,可以保证全球范围内的唯一性。

uuid.uuid2()  算法与uuid1相同,不同的是把时间戳的前4位置换为POSIX的UID。不过需要注意的是python中没有基于DCE的算法,所以python的uuid模块中没有uuid2这个方法。

uuid.uuid3(namespace,name)  通过计算一个命名空间和名字的md5散列值来给出一个uuid,所以可以保证命名空间中的不同名字具有不同的uuid,但是相同的名字就是相同的uuid了。【感谢评论区大佬指出】namespace并不是一个自己手动指定的字符串或其他量,而是在uuid模块中本身给出的一些值。比如uuid.NAMESPACE_DNS,uuid.NAMESPACE_OID,uuid.NAMESPACE_OID这些值。这些值本身也是UUID对象,根据一定的规则计算得出。

uuid.uuid4()  通过伪随机数得到uuid,是有一定概率重复的

uuid.uuid5(namespace,name)  和uuid3基本相同,只不过采用的散列算法是sha1

一般而言,在对uuid的需求不是很复杂的时候,uuid1方法就已经够用了,使用方法如下:

#coding=utf-8

import uuid

name = 'test_name'

# namespace = 'test_namespace'

namespace = uuid.NAMESPACE_URL

print uuid.uuid1()

print uuid.uuid3(namespace,name)

print uuid.uuid4()

以下是python官方提供的参考示例

>>> import uuid

>>> # make a UUID based on the host ID and current time

>>> uuid.uuid1()

UUID('a8098c1a-f86e-11da-bd1a-00112444be1e')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name

>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')

UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

>>> # make a random UUID

>>> uuid.uuid4()

UUID('16fd2706-8baf-433b-82eb-8c7fada847da')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name

>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')

UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

生成 32 位哈希值

uuid.uuid4().hex

Out[3]:

'28128f59692242b2854ece961ea1dd35'

更多关于Python使用uuid库生成唯一标识ID的文章大家可以点击下面的相关链接

本文标题: Python使用uuid库生成唯一标识ID

本文地址: http://www.cppcns.com/jiaoben/python/300303.html

python namespace unique_Python使用uuid库生成唯一标识ID相关推荐

  1. js生成唯一标识ID

    js生成唯一标识ID 前言 方法一.利用时间戳+随机字母生成 方法二.利用时间戳加上机器码生成的唯一标识ID 总结 前言 有时候,表格数据的分页,增加,删除,编辑等功能都需要前端来完成,因为数据的全部 ...

  2. python 使用UUID库生成唯一ID

      首先导包: import uuid uuid1(): # make a UUID based on the host ID and current time     #  基于MAC地址,时间戳, ...

  3. Python使用UUID库生成唯一ID

    资料:Python官方Doc:<20.15. uuid - UUID objects according to RFC 4122>UUID的算法介绍:<A Universally U ...

  4. 在高并发分布式情况下生成唯一标识id

    做项目的时候经常会用id作为唯一标识. 但是当有这样一个需求出现的时候:工程分布式部署,要求抗住高并发.并且生成的id是根据时间自增的.解决这个问题有很多种方法,但是要选择一个性价比比较高的策略比较不 ...

  5. python学习之路—自动生成唯一标识(md5加密方式)

    前言 在python存入数据库时,如果数据库的主键不是自增方式,那么我们可能需要自己生成一个唯一标识符,现在最好的方法就是md5加密生成的32位作为主键,本文将会介绍python的两种自动生成唯一标识 ...

  6. Vue中使用uuidv1根据时间戳和MAC地址生成唯一标识

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客_若依前后端分离搭建 在上面搭建起来Vue项目的基础上,怎样 ...

  7. Java生成唯一标识码的三种方式

    Java生成唯一标识码的三种方式 前言 我们经常会遇到这样的场景,需要生成一个唯一的序列号来表明某一个数据的唯一性,在单节点的应用中我们可以简单地使用一个自增的整型来实现实现,但是在分布式情况下这个方 ...

  8. 关于PC端游览器生成唯一标识

    ~~ 在图解http第一章说明,网络通信必须要同时知道IP地址和mac地址,ip地址可以获取到,关于mac地址就呵呵了 一,关于IP地址: 1.1IP地址编址方式 ABC类ip地址规则:网络号+主机号 ...

  9. 怎样生成唯一的ID?

    打开我的简书首页,在地址栏上可以看到这样的地址 http://www.jianshu.com/users/066ab87a062b/latest_articles 作为一个web开发者应该知道这里的u ...

最新文章

  1. DEDECMS后台上传banner图控制图片轮播
  2. CSS——清除浮动的六种解决方案
  3. oracle中批量更新,oracle 批量更新
  4. 15天内数据迁移!广东省能源局发布通知,这类数据中心面临停工风险!
  5. 《『若水新闻』客户端开发教程》——01.课程介绍
  6. Leetcode-Pascal's Triangle
  7. ASA virtual telnet
  8. 移动办公平台2015年年度盘点
  9. java sqlserver 图书馆管理系统_基于JAVA+SQLServer的图书馆管理系统.doc
  10. 19-离线词典生成原理、图像描述子用BoW转化为BoW向量和FeatureVe
  11. 【读书笔记】合理的设计
  12. 机械转行java自学经历,零基础学java,血泪总结的干货
  13. 记录软考上午题1计算机系统之1.2 计算机体系结构及真题
  14. 为什么重写Equals方法要重写HashCode方法
  15. 牛客网实战项目详细到每一步(更新中)
  16. unturned服务器重置,服务器配置文件Config.json说明
  17. java perm heap 区别_JVM虚拟机选项:Xms Xmx PermSize MaxPermSize区别
  18. Adlik在深度学习异构计算上的实践
  19. 数据库设计中的命名规范
  20. 作业盒子生端AndrOid,作业盒子小学下载安装学生版

热门文章

  1. 用ntdsutil命令中的restore object 更新版本号
  2. Web优化 --利用css sprites降低图片请求
  3. ListString 和 ArrayListString的区别
  4. 十进制小数转换二进制的问题
  5. How Tomcat works — 一、怎样阅读源码
  6. node截图服务可用性报告
  7. python发送包含html、图片、附件和链接的邮件
  8. 我的专业博客启动了!
  9. 贝叶斯统计 传统统计_统计贝叶斯如何补充常客
  10. javascript 分号_让我们谈谈JavaScript中的分号