`

Python使用UUID库生成唯一ID

阅读更多

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使用uuid库生成唯一标识ID #### 一、引言 在开发过程中,经常会遇到需要为对象或记录分配一个全局唯一标识符的情况。这样的标识符可以帮助我们在分布式系统中跟踪对象,避免数据冲突等问题。Python 的 `...

    Python用UUID库生成唯一ID的方法示例

    以下是一些使用Python的UUID库生成唯一ID的示例代码: ```python import uuid # 1. 生成基于计算机主机ID和当前时间的UUID print("uuid1生成基于计算机主机ID和当前时间的UUID") print(uuid.uuid1()) # 2. 生成...

    PB生成UUID.zip

    例如,在Python中,可以使用`uuid`模块的`uuid4()`函数生成一个基于随机数的UUID;而在Java中,可以使用`java.util.UUID`类的静态方法`randomUUID()`。 使用PB生成UUID的步骤大致如下: 1. 引入PB库:首先,需要在...

    Python UUID模块介绍及基本使用.docx

    此方法通常在系统提供版本1的UUID生成器时使用,但生成的UUID可能不符合RFC 4122标准。 2. `uuid.uuid3()` 它使用MD5哈希算法,将一个UUID(namespace)和一个字符串(name)结合生成新的UUID。这种方法生成的UUID...

    Python-shortuuid一个生成器库用以生成简洁的明白的URL安全的UUID

    `shortuuid`是一个针对Python设计的库,它的主要功能是生成简短、可读性强、URL安全的UUID替代品。这个库由Christos Skorokithakis创建,并且在GitHub上的项目名为"skorokithakis/shortuuid",最新的稳定版本为c...

    PyPI 官网下载 | micropython-uuid-0.1.tar.gz

    以下是一个简单的MicroPython环境下的UUID生成示例: ```python import uuid # 生成一个UUID new_uuid = uuid.uuid4() print(new_uuid) ``` 运行这段代码,你将会得到一个UUID字符串,如`550e8400-e29b-41d4-...

    python uuid模块使用实例

    python的uuid模块就是用来生成它的。 闲话不说,python提供的生成uuid的方法一共有4种,分别是: 1.从硬件地址和时间生成 2.从md5算法生成 3.随机生成 4.从SHA-1算法生成 他们在uuid模块里对应uuid1, uuid3, uuid4, ...

    Python生成短uuid的方法实例详解

    python的uuid都是32位的,比较长,处理起来效率比较低, 本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,然后通过模62操作,结果作为索引取出字符, 最后...

    Python通用唯一标识符uuid模块使用案例

    Python标准库中的`uuid`模块提供了生成UUID的功能,并且支持四种主要的UUID版本(1, 3, 4, 5),每种版本都有其特定的生成方式: - **uuid1()**:基于时间戳和MAC地址,可以确保全球范围内的唯一性。但是,由于其中...

    python生成大写32位uuid代码

    在Python中,我们可以使用内置的`uuid`库来生成UUID。UUID通常由32个十六进制数字组成,中间用破折号分隔成5段,但有时为了特定需求,如数据库存储或URL参数等,会去掉这些破折号,形成一个连续的32位字符串。 标题...

    python生成并处理uuid的实现方式

    UUID(Universally Unique Identifier)是通用唯一识别码,在许多领域用作标识,比如我们常用的数据库也可以用它来作为主键,原理...python有一个模块叫做uuid,导入它就可以使用它的四个方法了。注意这四个方法依次是

    测试多种方法生成唯一性随机码Demo

    在Java、Python等语言中都有内置库支持生成UUID。 2. **时间戳+随机数**: 结合当前时间戳(毫秒或微秒级别)和一定范围内的随机数可以创建唯一编码。但这种方法的唯一性依赖于生成请求的并发性和时间间隔,如果...

    Python库 | nukeuuid-0.1.0.tar.gz

    nukeuuid库可能提供了更高效的生成方式,或者具有与特定框架或工具的集成能力,使得在Python项目中使用UUID变得更加高效和方便。 在安装“nukeuuid”库时,通常会使用Python的包管理器pip。用户可以通过命令`pip ...

    shortuuid:简洁,明确和URL安全的UUID的生成器库

    shortuuid是一个简单的python库,可生成简洁,明确,URL安全的UUID。 通常,人们需要在用户看到非顺序ID的地方使用它们,但是这些ID必须尽可能简洁且易于使用。 shortuuid通过使用Python的内置uuid模块生成uuid ,...

    gen_id:用于生成唯一 ID 的 python 模块

    2. **随机数**:Python的`random`库可以生成随机数,`gen_id`可能会使用这些随机数来生成ID。为了保证唯一性,可能会使用高强度的随机数生成器,如`secrets`库。 3. **UUID**:如果`gen_id`支持UUID,它可能包含`...

Global site tag (gtag.js) - Google Analytics