如何将两个 UUIDv4 字符串合并为一个唯一的 UUIDv4 字符串
How to combine two UUIDv4 strings to a single unique UUIDv4 string
我有两个 UUIDv4 字符串,我想将它们组合成一个唯一的 UUIDv4 字符串,这样输入的 UUID 字符串总是生成相同的 UUIDv4 字符串,无论它们的插入索引如何。
def generate_uuidv4(uuid1,uuid2):
"""
Combine to single unique uuidv4 string which is replicable based on input strings regardless of insert position
"""
return uuidv4_string
注意:输入 ID 与位置无关。
最直接的方法可能是将两个 UUID 的 int 表示与按位运算符结合起来,并从中构造一个新的 UUID:
>>> from uuid import *
>>> u1 = uuid4()
>>> u2 = uuid4()
>>> u3 = UUID(int=u1.int ^ u2.int, version=4)
>>> u1, u2, u3
(UUID('2266aff1-a7be-4c71-bc0d-987779f68bd3'),
UUID('284c5065-299f-479c-9d6b-d353012795d7'),
UUID('0a2aff94-8e21-4bed-a166-4b2478d11e04'))
我无法告诉您此处组合的最佳运算符是什么,XOR、OR、AND 或其他任何运算符。关于这如何影响结果的随机分布的推理超出了我的薪酬等级。
我有两个 UUIDv4 字符串,我想将它们组合成一个唯一的 UUIDv4 字符串,这样输入的 UUID 字符串总是生成相同的 UUIDv4 字符串,无论它们的插入索引如何。
def generate_uuidv4(uuid1,uuid2):
"""
Combine to single unique uuidv4 string which is replicable based on input strings regardless of insert position
"""
return uuidv4_string
注意:输入 ID 与位置无关。
最直接的方法可能是将两个 UUID 的 int 表示与按位运算符结合起来,并从中构造一个新的 UUID:
>>> from uuid import *
>>> u1 = uuid4()
>>> u2 = uuid4()
>>> u3 = UUID(int=u1.int ^ u2.int, version=4)
>>> u1, u2, u3
(UUID('2266aff1-a7be-4c71-bc0d-987779f68bd3'),
UUID('284c5065-299f-479c-9d6b-d353012795d7'),
UUID('0a2aff94-8e21-4bed-a166-4b2478d11e04'))
我无法告诉您此处组合的最佳运算符是什么,XOR、OR、AND 或其他任何运算符。关于这如何影响结果的随机分布的推理超出了我的薪酬等级。