UUID是128位的全局唯一标识符,通常由32字节的字符串表示。它可以保证时间和空间的唯一性,也称为GUID,全称为:UUID —— Universally Unique IDentifier,Python 中叫 UUID。它通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性。UUID主要有五个算法,也就是五种方法来实现。
- uuid1()——基于时间戳。由MAC地址、当前时间戳、随机数生成。可以保证全球范围内的唯一性,但MAC的使用同时带来安全性问题,局域网中可以使用IP来代替MAC。
- uuid2()——基于分布式计算环境DCE(Python中没有这个函数)。算法与uuid1相同,不同的是把时间戳的前4位置换为POSIX的UID。实际中很少用到该方法。
- uuid3()——基于名字的MD5散列值。通过计算名字和命名空间的MD5散列值得到,保证了同一命名空间中不同名字的唯一性,和不同命名空间的唯一性,但同一命名空间的同一名字生成相同的uuid。
- uuid4()——基于随机数。由伪随机数得到,有一定的重复概率,该概率可以计算出来。
-
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的UUID库生成唯一ID的示例代码: ```python import uuid # 1. 生成基于计算机主机ID和当前时间的UUID print("uuid1生成基于计算机主机ID和当前时间的UUID") print(uuid.uuid1()) # 2. 生成...
例如,在Python中,可以使用`uuid`模块的`uuid4()`函数生成一个基于随机数的UUID;而在Java中,可以使用`java.util.UUID`类的静态方法`randomUUID()`。 使用PB生成UUID的步骤大致如下: 1. 引入PB库:首先,需要在...
此方法通常在系统提供版本1的UUID生成器时使用,但生成的UUID可能不符合RFC 4122标准。 2. `uuid.uuid3()` 它使用MD5哈希算法,将一个UUID(namespace)和一个字符串(name)结合生成新的UUID。这种方法生成的UUID...
`shortuuid`是一个针对Python设计的库,它的主要功能是生成简短、可读性强、URL安全的UUID替代品。这个库由Christos Skorokithakis创建,并且在GitHub上的项目名为"skorokithakis/shortuuid",最新的稳定版本为c...
以下是一个简单的MicroPython环境下的UUID生成示例: ```python import uuid # 生成一个UUID new_uuid = uuid.uuid4() print(new_uuid) ``` 运行这段代码,你将会得到一个UUID字符串,如`550e8400-e29b-41d4-...
python的uuid模块就是用来生成它的。 闲话不说,python提供的生成uuid的方法一共有4种,分别是: 1.从硬件地址和时间生成 2.从md5算法生成 3.随机生成 4.从SHA-1算法生成 他们在uuid模块里对应uuid1, uuid3, uuid4, ...
python的uuid都是32位的,比较长,处理起来效率比较低, 本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,然后通过模62操作,结果作为索引取出字符, 最后...
Python标准库中的`uuid`模块提供了生成UUID的功能,并且支持四种主要的UUID版本(1, 3, 4, 5),每种版本都有其特定的生成方式: - **uuid1()**:基于时间戳和MAC地址,可以确保全球范围内的唯一性。但是,由于其中...
在Python中,我们可以使用内置的`uuid`库来生成UUID。UUID通常由32个十六进制数字组成,中间用破折号分隔成5段,但有时为了特定需求,如数据库存储或URL参数等,会去掉这些破折号,形成一个连续的32位字符串。 标题...
UUID(Universally Unique Identifier)是通用唯一识别码,在许多领域用作标识,比如我们常用的数据库也可以用它来作为主键,原理...python有一个模块叫做uuid,导入它就可以使用它的四个方法了。注意这四个方法依次是
在Java、Python等语言中都有内置库支持生成UUID。 2. **时间戳+随机数**: 结合当前时间戳(毫秒或微秒级别)和一定范围内的随机数可以创建唯一编码。但这种方法的唯一性依赖于生成请求的并发性和时间间隔,如果...
nukeuuid库可能提供了更高效的生成方式,或者具有与特定框架或工具的集成能力,使得在Python项目中使用UUID变得更加高效和方便。 在安装“nukeuuid”库时,通常会使用Python的包管理器pip。用户可以通过命令`pip ...
shortuuid是一个简单的python库,可生成简洁,明确,URL安全的UUID。 通常,人们需要在用户看到非顺序ID的地方使用它们,但是这些ID必须尽可能简洁且易于使用。 shortuuid通过使用Python的内置uuid模块生成uuid ,...
2. **随机数**:Python的`random`库可以生成随机数,`gen_id`可能会使用这些随机数来生成ID。为了保证唯一性,可能会使用高强度的随机数生成器,如`secrets`库。 3. **UUID**:如果`gen_id`支持UUID,它可能包含`...