You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两个UUIDv4字符串组合为单个顺序无关的唯一UUIDv4字符串

两个UUIDv4合并生成无序关联唯一UUIDv4方案

功能要求

  • 输入两个UUIDv4字符串,输出单个符合规范的UUIDv4字符串
  • 输入的两个UUID的传入顺序不影响输出结果,相同组合始终生成相同输出
  • 输出结果可复现,不存在随机性

Python实现代码

import uuid
import hashlib

def generate_uuidv4(uuid1, uuid2):
    """
    基于两个输入UUID生成唯一且固定的UUIDv4字符串,输入顺序不影响输出结果
    """
    # 统一转字符串后排序,消除输入顺序影响
    sorted_uuids = sorted([str(uuid1).strip(), str(uuid2).strip()])
    # 拼接后计算md5哈希(刚好得到128位,适配UUID长度)
    combined = ''.join(sorted_uuids).encode('utf-8')
    hash_bytes = hashlib.md5(combined).digest()
    # 修正为UUIDv4格式:第6字节高4位设为4,第8字节高2位设为10
    hash_list = list(hash_bytes)
    hash_list[6] = (hash_list[6] & 0x0F) | 0x40
    hash_list[8] = (hash_list[8] & 0x3F) | 0x80
    # 转为UUID对象后输出字符串格式
    return str(uuid.UUID(bytes=bytes(hash_list)))

验证示例

你可以通过以下调用验证顺序无关的特性:

a = "123e4567-e89b-12d3-a456-426614174000"
b = "123e4567-e89b-12d3-a456-426614174001"
print(generate_uuidv4(a, b))
print(generate_uuidv4(b, a))
# 两次输出结果完全一致

内容的提问来源于stack exchange,提问作者Zorrat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:24:02