我有一个分布式应用程序,可以从Internet上的特定服务发送和接收数据。当节点接收数据时,有时需要验证该数据是否与其先前发送的数据或其他节点相关。该值也必须足够独特,以便我实际上可以期望在24小时内永远不会生成相同的值。
在当前的实现中,我一直在使用包含值uuid.uuid1()
的自定义标头。我可以通过将接收到的uuid与uuid.getnode()进行比较来轻松验证该值来自运行的单个节点,但是在我们要求此应用程序应该是多节点之前编写此实现。
我仍然认为某些uuid
版本是正确的答案,但我似乎无法弄清楚如何验证传入的uuid值。
>>> received = uuid.uuid5(uuid.NAMESPACE_URL, 'http://example.org')
>>> received
UUID('c57c6902-3774-5f11-80e5-cf09f92b03ac')
有没有办法验证received
是使用'http://example.org'生成的?
答案 0 :(得分:0)
如果目标纯粹是为了在您的节点之间创建一个唯一值,那么您是不是只给每个节点一个唯一的名称并将其附加到您正在生成的uuid上?
如果您出于安全原因尝试执行此操作,或者您只想在节点间保证唯一值,那么我不清楚。