`
lykops
  • 浏览: 86141 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Python3之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


uuid模块的典型使用方法:

复制代码
>>> 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')

>>> # make a UUID from a string of hex digits (braces and hyphens ignored)
>>> x = uuid.UUID('{00010203-0405-0607-0809-0a0b0c0d0e0f}')

>>> # convert a UUID to a string of hex digits in standard form
>>> str(x)
'00010203-0405-0607-0809-0a0b0c0d0e0f'

>>> # get the raw 16 bytes of the UUID
>>> x.bytes
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f'

>>> # make a UUID from a 16-byte string
>>> uuid.UUID(bytes=x.bytes)
UUID('00010203-0405-0607-0809-0a0b0c0d0e0f')

分享到:
评论

相关推荐

    Python中的`uuid`模块:生成唯一标识符的终极指南

    Python的uuid模块提供了生成各种类型UUID的工具。本文将详细介绍uuid模块的使用方法,包括不同类型的UUID生成方式、如何生成符合RFC 4122标准的UUID,以及如何在实际应用中使用这些UUID。 Python的uuid模块为生成和...

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

    在Python中,UUID模块提供了方便的接口来生成和操作UUID。 UUID通常由128位(16字节)组成,按照特定格式分为五种版本(1到5)。每种版本的UUID生成方式略有不同,主要基于时间戳、随机数、网络硬件地址等信息。...

    python uuid模块使用实例

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

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

    ### Python通用唯一标识符uuid模块使用案例 #### 1. 背景知识:UUID简介 UUID(Universally Unique Identifier)是一种在时间和空间上保证唯一性的标识符。它由128位(16字节)组成,可以表示超过340京个不同的...

    python str字符串转uuid实例

    在Python中,`uuid`模块提供了对UUID的支持。 在Python的`uuid`模块中,可以方便地进行UUID与不同数据类型之间的转换。例如,将字符串转换为UUID对象,可以通过以下几种方式: 1. 直接使用字符串构造UUID对象: `...

    Python使用uuid库生成唯一标识ID

    #### 三、uuid模块概述 Python 内置的 `uuid` 模块提供了创建和操作 UUID 的功能。该模块支持以下几种类型的 UUID 生成方法: 1. **uuid1()**:基于 MAC 地址、时间戳和随机数生成。这种类型确保了 UUID 在时间和...

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

    1. 首先,我们导入Python内置的uuid模块,它提供了生成UUID的函数。在这里,我们使用`uuid4()`来生成一个随机的UUID。`uuid4`是基于时间戳和随机数的版本4UUID。 2. 定义一个名为`short_uuid`的函数,该函数首先将...

    python生成大写32位uuid代码

    - [Python官方文档 - UUID模块](https://docs.python.org/3/library/uuid.html) - [UUID标准](https://en.wikipedia.org/wiki/Universally_unique_identifier) 通过上述内容的学习,相信读者已经掌握了如何使用...

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

    由于MicroPython环境的内存和计算资源有限,该模块可能比Python标准库中的`uuid`模块进行了优化和简化,以适应小型设备的需求。 **压缩包内容** `micropython-uuid-0.1`这个压缩包包含的是`micropython-uuid`模块...

    python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了.pdf

    * Python 之 logging 模块基本使用 * Python 之 logging 模块详解 * Python 之 json 模块 * Python 之 pickle 模块 * Python 之 time 与 datetime 模块 * Python 之 random 模块 * os 模块 * sys 模块 * shutil 模块...

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

    `uuid`模块提供了四种方法,分别是`uuid1()`、`uuid3()`、`uuid4()`和`uuid5()`,它们各自有不同的生成策略。 1. `uuid1()`:这个方法基于当前的时间戳和机器的MAC地址生成UUID。因此,每个在不同时间点生成的`uuid...

    Python内置模块hashlib、hmac与uuid用法分析

    总而言之,hashlib、hmac与uuid模块在Python中提供了强大的功能,用于保证数据的安全性、完整性和唯一性。在实际开发过程中,理解和合理使用这些模块,可以有效防止数据被篡改和伪造,提高软件系统的安全性与稳定性...

    python bluetooth蓝牙信息获取蓝牙设备类型的方法

    扫描蓝牙信息使用的是python 里面的bluetooth模块。 首先扫描出来的是这样的信息 (’74:60:FA:FD:FC:49′,’HUAWEI P30′,5898764) 可根据5898764来判断是什么蓝牙设备。 收集了一些设备,可以成功的转化为设备...

    PB生成UUID.zip

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

Global site tag (gtag.js) - Google Analytics