如何将 Python uuid5() 反转为其值?
how to reverse Python uuid5() to its value?
可以反推吗?
如果我使用
>>> RESOURCE_ID_NAMESPACE = uuid.UUID('0a7a15ff-aa13-4ac2-897c-9bdf30ce175b')
>>> value = 'test'
>>> uuid.uuid5(RESOURCE_ID_NAMESPACE, value)
UUID('7fd19145-920f-5b9c-be0a-2146b0c39949')
如果我知道uuid5的值,是否可以得到'test'的值?
非常感谢。
不,你不能。 uuid 是通过散列您传递给构造函数的名称空间和值来创建的。但是还有无数其他可能的字符串(尽管它们可能很难找到)散列为相同的值。因此无法确定构造 uuid 的原始字符串是什么。
UUID 版本 5 是 based on the SHA-1 hash of the input。加密散列算法的全部意义在于它们在一般情况下几乎不可能逆转。
如果您知道输入是一个字典单词,当然,您可以为字典中的每个单词生成一个 uuid5 值,当您知道它是一串短字母时也是如此,但在一般情况下,不,您不能像加密散列一样反转 UUID5 值。不,SHA-1 的弱点在这里不太可能有帮助;它们主要用于产生碰撞,但不能恢复原始值。
可以反推吗? 如果我使用
>>> RESOURCE_ID_NAMESPACE = uuid.UUID('0a7a15ff-aa13-4ac2-897c-9bdf30ce175b')
>>> value = 'test'
>>> uuid.uuid5(RESOURCE_ID_NAMESPACE, value)
UUID('7fd19145-920f-5b9c-be0a-2146b0c39949')
如果我知道uuid5的值,是否可以得到'test'的值?
非常感谢。
不,你不能。 uuid 是通过散列您传递给构造函数的名称空间和值来创建的。但是还有无数其他可能的字符串(尽管它们可能很难找到)散列为相同的值。因此无法确定构造 uuid 的原始字符串是什么。
UUID 版本 5 是 based on the SHA-1 hash of the input。加密散列算法的全部意义在于它们在一般情况下几乎不可能逆转。
如果您知道输入是一个字典单词,当然,您可以为字典中的每个单词生成一个 uuid5 值,当您知道它是一串短字母时也是如此,但在一般情况下,不,您不能像加密散列一样反转 UUID5 值。不,SHA-1 的弱点在这里不太可能有帮助;它们主要用于产生碰撞,但不能恢复原始值。