python uuid模块学习

  1. uuid模块:
    通用唯一标识符(Universally Unique Identifie),UUID可以保证在空间和时间上的唯一性. 它是通过MAC地址, 时间戳, 命名空间, 随机数, 伪随机数来保证生成ID的唯一性, 有着固定的大小( 128 bit ). 它的唯一性和一致性特点使得可以无需注册过程就能够产生一个新的UUID. UUID可以被用作多种用途, 既可以用来短时间内标记一个对象, 也可以可靠的辨别网络中的持久性对象.
  2. python中的uuid模块提供四种算法分别是uuid1.(), uuid3.(),uuid4.(),uuid5.()。
    uuid1.()是基于时间戳产生的uuid;
    uuid3.(namespace, str)是通过md5散列值产生的uuid,如果名字相同产生的uuid号也相同。md5散列值,也可以成为一种加密算法。
    uuid4.()是通过伪随机数产生的,有一定的几率产生相同的uuid,概率可算。
    uuid5.(namespace, str)是基于sha1散列值产生的uuid。跟uuid3一样,sha1散列值也是一种加密算法。
    uuid3和5中的namesspace有一些由预定义UUID值标识的公开的命名空间,分别用于处理DNS、URL、ISO OID和X.500识别名(Distinguished Name)。通过生成和保存UUID值,还可以定义新的特定于应用的命名空间。
  3. 示例:
[root@localhost ]# python
Python 3.7.9 (default, Sep  8 2020, 16:48:29) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import uuid
>>> uuid.uuid1()
UUID('ba14004c-0e94-11eb-ba17-000c29aa80c9')
>>> 
>>> uuid.uuid1()
UUID('bb7dbe1e-0e94-11eb-ba17-000c29aa80c9')
>>> uuid.uuid3(uuid.)	//注释:在uuid.后双击table就会出现一些namespace
uuid.Enum(               uuid.RESERVED_NCS        uuid.os
uuid.NAMESPACE_DNS       uuid.RFC_4122            uuid.sys
uuid.NAMESPACE_OID       uuid.SafeUUID(           uuid.uuid1(
uuid.NAMESPACE_URL       uuid.UUID(               uuid.uuid3(
uuid.NAMESPACE_X500      uuid.bytes_(             uuid.uuid4(
uuid.RESERVED_FUTURE     uuid.getnode(            uuid.uuid5(
uuid.RESERVED_MICROSOFT  uuid.int_(               
>>> uuid.uuid3(uuid.NAMESPACE_DNS, "a")
UUID('4c104dd0-4821-30d5-9ce3-0e7a1f8b7c0d')
>>> uuid.uuid3(uuid.NAMESPACE_DNS, "a")
UUID('4c104dd0-4821-30d5-9ce3-0e7a1f8b7c0d')
>>> uuid.uuid3(uuid.NAMESPACE_DNS, "b")
UUID('c4f8d206-80ca-33ae-a830-f58835b1b131')
>>> uuid.uuid5(uuid.NAMESPACE_DNS, "b")
UUID('3f10dbe8-4cbd-5e31-9b1f-af0cb9dda9cf')
>>> uuid.uuid5(uuid.NAMESPACE_DNS, "a")
UUID('4f3f2898-69e3-5a0d-820a-c4e87987dbce')
>>> uuid.uuid4()
UUID('24ee8bc0-a094-42c1-966b-54e2a000154a')
>>> uuid.uuid4()
UUID('fb0b82e2-31d7-4e67-8e83-66a78766d824')
>>> 

动手测试一下,可以体验体验uuid产生的过程,理解更深刻。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值