概述:
是128位的全局唯一标识符(字符串),通常由32字节的字母串表示,它可以保证时间和空间的唯一性,也称为GUID
原理:通过MAC地址、和时间戳、命名空间、随机数、伪随机数来保证生成的id的唯一性
作用:
随机生成字符串,当成token使用,当成用户账号使用,当成订单号使用,这些都是要求唯一的应用
算法:
uuid1() 基于时间戳
MAC地址、当前的时间戳、随机数字,可以保证全球范围内的唯一性
uuid2() 基于分布式计算环境DCE # Python 没有
和uuid1相同,不同的是把时间戳的前饲喂换位posix的uuid,实际当中很少使用
uuid3() 基于名字和MD5散列值
通过计算名字和命名空间的MD5散列值得到的,保证了同一命名空间中不同名字的唯一性和不同命名空间的唯一性,但同一命名空间的相同名字生成相同的uudi
uuid4()基于随机数
有伪随机数得到的,有一定的重复概率,这个概率可以计算出来
uuid()5 基于名字和SHA1散列值
算法和uuid3相同,不同的是使用的算法不一样
使用经验:
1.Python中没有DCE
2.uuid4存在概率性重复,由于无映射性,最好不用
3.如果在全局的分布式环境下,最好使用uudi1(),效率高,只需要根据MAC地址不同就行啦
4.若名字的唯一性要求,最好使用uuid3和uuid5,
解决网站的用户名不同的时候,生成token
print(uuid.uuid1())
print(uudi.uuid4())
print(uuid.uuid3(uuid.NAMESPACE_DNS, '命名'))
网友评论