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. gamma分布_轻松理解gamma分布
  2. 禁用Grid上的自动排序功能
  3. clob和blob是不是可以进行模糊查询_为省几十元买假内存条?金士顿内存条真伪查询与辨别方法...
  4. Docker 方式安装 gitlab ( 阿里云ECS )
  5. php实现ftp上传,PHP_PHP实现ftp上传文件示例,FTP上传是PHP实现的一个常见且 - phpStudy...
  6. Windows上设置Docker共享盘符
  7. 2017.7.17数据类型
  8. 【推导】【DFS】Codeforces Round #429 (Div. 1) B. Leha and another game about graph
  9. 用ffmpeg在命令行下,对文件进行转码H264
  10. GAMBIT、ICEM、HYPERMESH耦合面的处理方法
  11. 为什么程序员下班后只关显示器却从不关电脑?
  12. (20200226已解决)PyCharm里的黄色波浪线
  13. java同步数据,int类型清空为0
  14. 坚持住啊,还在代码屎山中爬行的同事们
  15. canvas开发手册完整版
  16. 天蓝色房间(密室逃脱三)攻略
  17. 加工生产调度(流水作业调度问题)——Johnson算法应用
  18. Validators
  19. Java 输出1-100之内的所有质数
  20. MYSQL的CRUD

热门文章

  1. 企业员工工资管理系统
  2. Groovy在Spring中的简单使用实例
  3. Memcached总结三:Memcached常用命令及使用说明
  4. 利用XML生成Excel
  5. 搜索引擎优化学习原理_如何使用数据科学原理来改善您的搜索引擎优化工作
  6. 计算机真正管理的文件名是什么,计算机题,请大家多多帮忙,谢谢
  7. python爬抖音短视频_python爬取抖音小视频
  8. leetcode 1. 两数之和(map)
  9. leetcode91. 解码方法
  10. leetcode109. 有序链表转换二叉搜索树(深度优先搜索/快慢指针)