大家好,又見面了,我是你們的朋友全棧君。
# coding:utf-8
“””生成随機數”””
import random
import time
import uuid
from hashlib import md5
__author__ = ‘zheng’
def generate_rand_id(sstr=None):
“””生成一組16進制的随機數,32位:param sstr::return:”””
ti = int(time.time())
if not sstr:
string = list(“0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”)
random.shuffle(string)
sstr = ”.join(string)
rand = str(random.randint(0, 99999))
res = str(ti) + sstr + rand
res = md5(res.encode(‘utf-8’)).hexdigest()
return res
def get_uuid1_key():
“””擷取唯一碼,32個的16進制:return:”””
uuid_str = uuid.uuid1().hex
return uuid_str
def generate_uuid_token():
“””生成一個40位數的16進制的token字段串,因為考慮到直接uuid生成存在連續性問題,後面再加個8位的随機數:return:”””
uuid_str = get_uuid1_key()
rand_str = generate_rand_id()
rand_str = rand_str[0:8]
token = uuid_str + rand_str
return token
def get_uuid3_key(domain=’default.domain.com’):
“””根據域來獲得唯一的ID,但同一命名空間的同一名字生成相同的uuid:param domain::return:”””
uuid_str = uuid.uuid3(uuid.NAMESPACE_DNS, domain).hex
return uuid_str
def demo_get_uuid1():
for _ in range(20):
print(get_uuid1_key())
if __name__ == ‘__main__’:
demo_get_uuid1()
print(generate_uuid_token())
print(generate_uuid_token())
釋出者:全棧程式員棧長,轉載請注明出處:https://javaforall.cn/188593.html原文連結:https://javaforall.cn