是否可以从时间戳获取原始UUID1?

例如,我使用以下程序生成基于时间的UUID。

import uuid
uuid = uuid.uuid1()
print uuid
print uuid.time

我得到以下信息:

47702997-155d-11ea-92d3-6030d48747ec
137946228962896279

如果我知道时间戳47702997-155d-11ea-92d3-6030d48747ec,是否可以找回原始UUID,即(137946228962896279)

我正在阅读有关UUID版本1的信息,发现有一些程序试图对其进行逆向转换,但是每次,我都会得到一个不同的UUID。

始终变化的部分是时间戳部分(第一个块的后4位-47702997)和clock_sequence(92d3)。

如果可以取回原始UUID,我需要什么?

非常感谢您的帮助/指导。

我也在Security Stackexchange上发表了一篇文章,但后来意识到应该在这里发布此问题。

我研究的越多,我发现这根本不可能,因为除非我错了,否则时间戳不包含关于clock_sequence的信息,在这种情况下,请纠正我。

wanganqideming 回答:是否可以从时间戳获取原始UUID1?

UUIDv1包含两个主要部分:时间上唯一的部分(又称时间戳)和空间上唯一的部分。根据设计,两者是完全独立的,因此,如果将其中一块扔掉,就无法在以后从另一块中恢复。

通常,请注意整个UUID如何为32位十六进制数字或128位信息,但是时间戳为18位十进制数字或仅60位信息。即使不了解UUID,您也可能会猜到其中有些位是冗余的或固定的(还有一些固定的,或者至少是可猜测的),但是其中一半以上呢?不太可能,这意味着这种翻译是不可逆的。

本文链接:https://www.f2er.com/2988859.html

大家都在问