python namespace unique_Python使用uuid库生成唯一标识ID
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相关推荐
- js生成唯一标识ID
js生成唯一标识ID 前言 方法一.利用时间戳+随机字母生成 方法二.利用时间戳加上机器码生成的唯一标识ID 总结 前言 有时候,表格数据的分页,增加,删除,编辑等功能都需要前端来完成,因为数据的全部 ...
- python 使用UUID库生成唯一ID
首先导包: import uuid uuid1(): # make a UUID based on the host ID and current time # 基于MAC地址,时间戳, ...
- Python使用UUID库生成唯一ID
资料:Python官方Doc:<20.15. uuid - UUID objects according to RFC 4122>UUID的算法介绍:<A Universally U ...
- 在高并发分布式情况下生成唯一标识id
做项目的时候经常会用id作为唯一标识. 但是当有这样一个需求出现的时候:工程分布式部署,要求抗住高并发.并且生成的id是根据时间自增的.解决这个问题有很多种方法,但是要选择一个性价比比较高的策略比较不 ...
- python学习之路—自动生成唯一标识(md5加密方式)
前言 在python存入数据库时,如果数据库的主键不是自增方式,那么我们可能需要自己生成一个唯一标识符,现在最好的方法就是md5加密生成的32位作为主键,本文将会介绍python的两种自动生成唯一标识 ...
- Vue中使用uuidv1根据时间戳和MAC地址生成唯一标识
场景 若依前后端分离版手把手教你本地搭建环境并运行项目: 若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客_若依前后端分离搭建 在上面搭建起来Vue项目的基础上,怎样 ...
- Java生成唯一标识码的三种方式
Java生成唯一标识码的三种方式 前言 我们经常会遇到这样的场景,需要生成一个唯一的序列号来表明某一个数据的唯一性,在单节点的应用中我们可以简单地使用一个自增的整型来实现实现,但是在分布式情况下这个方 ...
- 关于PC端游览器生成唯一标识
~~ 在图解http第一章说明,网络通信必须要同时知道IP地址和mac地址,ip地址可以获取到,关于mac地址就呵呵了 一,关于IP地址: 1.1IP地址编址方式 ABC类ip地址规则:网络号+主机号 ...
- 怎样生成唯一的ID?
打开我的简书首页,在地址栏上可以看到这样的地址 http://www.jianshu.com/users/066ab87a062b/latest_articles 作为一个web开发者应该知道这里的u ...
最新文章
- DEDECMS后台上传banner图控制图片轮播
- CSS——清除浮动的六种解决方案
- oracle中批量更新,oracle 批量更新
- 15天内数据迁移!广东省能源局发布通知,这类数据中心面临停工风险!
- 《『若水新闻』客户端开发教程》——01.课程介绍
- Leetcode-Pascal's Triangle
- ASA virtual telnet
- 移动办公平台2015年年度盘点
- java sqlserver 图书馆管理系统_基于JAVA+SQLServer的图书馆管理系统.doc
- 19-离线词典生成原理、图像描述子用BoW转化为BoW向量和FeatureVe
- 【读书笔记】合理的设计
- 机械转行java自学经历,零基础学java,血泪总结的干货
- 记录软考上午题1计算机系统之1.2 计算机体系结构及真题
- 为什么重写Equals方法要重写HashCode方法
- 牛客网实战项目详细到每一步(更新中)
- unturned服务器重置,服务器配置文件Config.json说明
- java perm heap 区别_JVM虚拟机选项:Xms Xmx PermSize MaxPermSize区别
- Adlik在深度学习异构计算上的实践
- 数据库设计中的命名规范
- 作业盒子生端AndrOid,作业盒子小学下载安装学生版