要高效生成唯一的8位非递增数字UID,可以考虑以下几种方法:
import random
def generate_uid():
return random.randint(10000000, 99999999)
# 检查唯一性
def is_unique(uid, existing_uids):
return uid not in existing_uids
existing_uids = set()
while True:
uid = generate_uid()
if is_unique(uid, existing_uids):
existing_uids.add(uid)
break
import time
def generate_uid():
timestamp = int(time.time() * 1000) # 毫秒级时间戳
return str(timestamp)[-8:]
uid = generate_uid()
import uuid
def generate_uid():
uid = uuid.uuid4().int # 将UUID转换为整数
return str(uid)[-8:]
uid = generate_uid()
CREATE TABLE uids (
id INT AUTO_INCREMENT PRIMARY KEY,
uid CHAR(8) NOT NULL
);
INSERT INTO uids (uid) VALUES (LPAD(LAST_INSERT_ID(), 8, '0'));
import hashlib
def generate_uid(input_data):
hash_object = hashlib.sha256(input_data.encode())
hex_dig = hash_object.hexdigest()
return hex_dig[-8:]
uid = generate_uid("some_unique_input_data")
根据具体需求选择合适的方法。