2012-07-19 40 views
2

我有一个分布式应用程序,用于发送和接收来自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”产生的?

  1. uuid是否正确的方法呢?如果不是,那是什么?
  2. 如果是这样,我应该甚至在这里使用uuid5吗?
+1

为此使用PKI有什么问题? – 2012-07-19 20:16:32

+0

只要你不担心恶意攻击,这听起来很好,否则,正如@ IgnacioVazquez-Abrams所提到的,你应该使用某种加密 – dfb 2012-07-19 20:22:55

+1

即使是加密,只是签名部分。 – 2012-07-19 20:29:02

回答

0

如果目标纯粹是为了在整个节点上创建一个唯一的值,那么您是不是可以给每个节点一个唯一的名称并将其添加到您正在生成的uuid中?

如果您出于安全原因试图执行此操作,或者您只是希望跨节点保证唯一的值,那么我不清楚。

相关问题