py内置 uuid 模块

Python 的 uuid 模块提供了生成通用唯一识别码(Universally Unique Identifier,UUID)的功能。UUID 是一个标准化的唯一性标识符,用于在分布式系统中无需中央协调就能保证唯一性。

主要特性:

  • 唯一性:理想情况下,UUID 的生成应该是完全唯一的,即在空间和时间上不会与任何其他UUID冲突。
  • 无序性:UUID 不包含任何顺序或时间信息,随机生成,不能预测。
  • 简洁性:UUID 通常以 32 个十六进制数字表示,通过特定的算法生成,形成一个36个字符的字符串(包含4个连字符),例如:123e4567-e89b-12d3-a456-426614174000

使用场景:

  • 分布式系统:在没有中央协调的情况下生成唯一的用户ID、会话ID、记录ID等。
  • 数据库主键:作为不需要数据库自增字段的唯一主键。
  • 消息队列:为消息生成唯一标识符,确保消息的唯一性。

常见的 UUID 版本:

  • UUID1:基于时间的UUID,包含时间戳和MAC地址,保证了趋势性和唯一性。
  • UUID3:基于命名空间和散列的UUID,使用 MD5 散列算法。
  • UUID4:基于随机数的UUID,完全随机生成,不包含任何个人信息或时间信息。
  • UUID5:基于命名空间和散列的UUID,使用 SHA-1 散列算法。

示例代码:

python

import uuid 
# 生成一个随机的 UUID (UUID4) 
random_uuid = uuid.uuid4() 
print("Random UUID:", random_uuid) 

# 根据命名空间和名称生成 UUID (UUID3 和 UUID5) 
namespace = uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org') 
print("UUID3 from python.org:", namespace) 

# 生成一个基于时间的 UUID (UUID1) 
time_uuid = uuid.uuid1() 
print("Time-based UUID:", time_uuid)

在大多数需要保证唯一性且不需要考虑顺序或时间信息的场景下,推荐使用 uuid4。由于它是基于随机数生成的,所以不会泄露任何关于生成时间或生成地点的信息。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值