pythin uuid模块

一. 简介

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

全称为:UUID--Universally Unique IDentifier  在python 中叫做UUID,在C#中称为 GUID--Globally Unique IDentifier.

它通过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 算法。

使用经验:

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

二. 使用


1

2

3

4

5

6

7

8

9

10

11

12

13

14

import uuid

# uuid1()

>>> print(uuid.uuid1())

2cf0fa7e-48d9-11e6-93fb-c03fd53413ef

# uuid3()

>>> print(uuid.uuid3(uuid.NAMESPACE_DNS, ‘test‘))

45a113ac-c7f2-30b0-90a5-a399ab912716

# uuid4()

>>> print(uuid.uuid4())

08bffbb6-05e1-41c1-8989-6aa07a4a5e5d

# uuid5()

>>> print(uuid.uuid5(uuid.NAMESPACE_DNS, ‘test‘))

4be0643f-1d98-573b-97cd-ca98a65347dd

时间: 2024-10-09 08:56:07

pythin uuid模块的相关文章

Python uuid模块

uuid-universal unique identifier,通用唯一标识符 应用场景: 唯一标志某对象 该模块包含的主要函数有: uuid1([node[, clock_seq]])-基于时间戳 uuid3()-基于名字的MD5散列值 uuid4()-基于随机数 uuid5(namespace, name)-基于名字的SHA-1散列值 NOTE node不指定时,使用系统自带的getnode函数获取 namespace可以通过dir(uuid)查看 uuid模块提供UUID类,but很少用

py2/py3区别, 列表生成式, 网络编程, socketserver, 线程, uuid模块

一. py2/py3区别    - 编码&字符串        字符串:            py2:                unicode         v = u"root"    本质上用unicode存储(万国码)                (str/bytes)     v = "root"     本质用字节存储            py3:                str                v = "

python之uuid模块

一. 简介 UUID是128位的全局唯一标识符,通常由32字节的字母串表示.它可以保证时间和空间的唯一性,也称为GUID. 全称为:UUID--Universally Unique IDentifier  在python 中叫做UUID,在C#中称为 GUID--Globally Unique IDentifier. 它通过MAC地址,时间戳,命名空间,随机数,伪随机数来保证生成ID的唯一性. UUID主要有五个算法,也就是五种方法来实现. (1). uuid1()---基于时间戳 由MAC地址

Python——uuid

uuid模块在Python 2.5以后引入,接口包括:不可变对象UUID(UUID类)和函数uuid1().uuid3().uuid4()和uuid5(),后面的四个函数用于生成 RFC 4122 规范中指定的第1.3.4.5版UUID.使用uuid1()或uuid4()可以获得一个唯一的ID,uuid1()包含了主机的网络名称,uuid4()不涉及网络主机名,仅生成一个随机UUID,因此从隐私保护角度uuid4()更加安全. class uuid.UUID([hex[, bytes[, byt

【Python】 uuid生成唯一ID

uuid uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现.有时也称guid(global unique identifier).python中自带了uuid模块来进行uuid的生成和管理工作.(具体从哪个版本开始有的不清楚..) python中的uuid模块基于信息如MAC地址.时间戳.命名空间.随机数.伪随机数来uuid.具体方法有如下几个: uuid.uuid1() 基于MAC地址,时间戳,随机数来生成唯一的u

Java-单机版的书店管理系统(练习设计模块和思想_系列 四(2) )

说明: 本博客为补全上篇-Java-单机版的书店管理系统(练习设计模块和思想_系列 四(1) )的,所以如果不懂,请先看上一篇. 本系列都是我一步一步学习来的, 所以,可能比较适合初学设计模块的人来学. 现在补全我目前写的所以代码: 公共类: 用户类型枚举:UserTypeEnum类 package cn.hncu.bookStore.common; /** * 功能:用户类型的枚举!<br/> * 定义在公共模块.<br/> * 变量:<br/> * ADMIN(1,

Python中的uuid

1. 下载uuid模块 https://pypi.python.org/pypi/uuid/ uuid-1.30.tar.gz 2. 解压uuid模块 tar zxvf uuid-1.3.0.tar.gz -C /usr/src 3. build模块 cd /usr/src/uuid python setup.py build 4. install模块 python setup.py install 函数用法 uuid.uuid1() 1.uuid1()--基于时间戳 由MAC地址.当前时间戳.

python3_UUID模块详解

1.知识背景 UUID是128位的全局唯一标识符,通常有32字节的字母表示.它可以保证时间和空间的唯一性. UUID--Universally unique identifier 在python中叫UUID,在C#中成为GUID(globally unique identifier) 它通过mac地址,时间戳,命名空间,随机数,伪随机数来保证生成ID的唯一性. 2.为什么要使用UUID? 很多应用场景需要一个id, 但是又不要求这个id 有具体的意义, 仅仅用来标识一个对象. 常见的例子有数据库

补充模块

struct模块 import struct # 压包 res = struct.pack('i',999999999) print(res) print(len(res)) # 解包 obj = struct.unpack('i',res) print(obj[0]) subprocess模块 import subprocess res=subprocess.Popen('dir', shell=True, stderr=subprocess.PIPE, stdout=subprocess.P