Python生成用户ID
编辑
26
2024-11-09

封装生成ID的函数
封装一个简单的纯数字用户ID
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project :Qingyu-Tool-Server
@File :generate_id.py
@Author :晴天
@Date :2024-11-05 23:38:18
"""
import random
import time
import socket
import hashlib
def get_server_id():
# 可以返回服务器的唯一标识符,例如主机名的一部分
return str(socket.gethostname()).encode('utf-8')
def generate_user_id():
# 获取当前时间的微秒时间戳
timestamp = int(time.time() * 1_000_000) # 转为微秒
# 生成随机数字,增加到8位
random_digits = random.randint(10000000, 99999999)
# 拼接时间戳、随机数和服务器标识符信息
server_id = get_server_id()
unique_string = f"{timestamp}{random_digits}{server_id}"
# 计算SHA256哈希并转为数字
hash_object = hashlib.sha256(unique_string.encode())
hash_hex = hash_object.hexdigest()
# 截取前10位作为用户ID
user_id = int(hash_hex, 16) % 10 ** 10 # 取模确保ID为10位数字
return str(user_id)
if __name__ == '__main__':
print(generate_user_id())
运行测试
- 0
- 0
-
分享