总结了一份python生成4种UUID的代码:
UUID用4种uuid生成方法:uuid1: 基于时间戳 由MAC地址、当前时间戳、随机数字。保证全球范围内的唯一性。但是由于MAC地址使用会带来安全问题,局域网内使用IP代替MACuuid3() 基于名字和MD5散列值 通过计算名字和命名空间的MD5散列值得到的,保证了同一命名空间中不同名字的唯一性,不同命名空间的唯一性。但是同一命名空间相同名字生成相同的uuid。uuid4() 基于随机数 由伪随机数得到的,有一定重复概率,这个概率是可以算出来的uuid5() 基于名字和SAHI值 算法和uuid3相同,不同的是使用SAHI算法
话不多说,代码如下:
import uuidclass UUIDUtils: # uuid1: 基于时间戳 由MAC地址、当前时间戳、随机数字 def get_uuid_basedon_timestamps(self): return str(uuid.uuid1()) # uuid3() 基于名字和MD5散列值 通过计算名字和命名空间的MD5散列值得到的,保证了同一命名空间中不同名字的唯一性,不同命名空间的唯一性。 def get_uuid_basedon_md5(self, name): return str(uuid.uuid3(uuid.NAMESPACE_DNS, name)) # 随机数的uuid,不推荐使用 def get_uuid_basedon_randomnumber(self): return str(uuid.uuid4()) # uuid5同样根据传入的namespace和一个由调用者指定字符串生成uuid,如uuid3不同的是,它使用SHA1算法。 def get_uuid_basedon_sha1(self, name): return str(uuid.uuid5(uuid.NAMESPACE_DNS, name))t = UUIDUtils()print(t.get_uuid_basedon_timestamps())print(t.get_uuid_basedon_md5(‘test’))print(t.get_uuid_basedon_randomnumber())print(t.get_uuid_basedon_sha1(‘test’))