java - 从 python 中的 java 代码重现 uuid

标签 java python uuid

在 Java 应用程序中,文件名是从使用函数 UUID.nameUUIDFromBytes 创建的蛋白质序列(例如 TTCCPSIVARSNFNVCRLPGTPEAICATYTGCIIIPGATCPGDYAN)生成的 UUID。这导致 UUID c6a0deb5-0c4f-3961-9d19-3f0fde0517c2

UUID.namedUUIDFromBytes 不将命名空间作为参数,而在 python 中 uuid.uuid3 是。根据What namespace does the JDK use to generate a UUID with nameUUIDFromBytes? ,命名空间应该作为名称的一部分传递,但不再可能更改 java 代码。

有没有一种方法可以在 python 代码中创建自定义命名空间,使其生成与 Java 代码相同的 UUID?

最佳答案

nameUUIDFromBytes只接受一个参数,就像你说的那样,它应该是命名空间和名称的串联。命名空间参数应该是 UUID,据我所知,它们没有定义 null 值。

null uuid”可以传递给 Python 的 uuid3像这样。只要命名空间具有 bytes 属性(使用 Python 2 和 3 测试),这就应该有效:

class NULL_NAMESPACE:
    bytes = b''
uuid.uuid3(NULL_NAMESPACE, 'TTCCPSIVARSNFNVCRLPGTPEAICATYTGCIIIPGATCPGDYAN')
# returns: UUID('c6a0deb5-0c4f-3961-9d19-3f0fde0517c2')

关于java - 从 python 中的 java 代码重现 uuid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27939281/

相关文章:

java - Spring boot MessageSource 在 application.properties 中不起作用

python - 如何在 Django 中处理来自 MySQL 的 "partial"日期(2010-00-00)?

c++ - 如何直接使用 key 作为 std::unordered_map 的哈希值?

PostgreSQL:将 UUID 转换为 OID

java.io.file 无法转换为自定义类

java - 无法在数组或列表中使用对象

java - 如何使用 JACKSON 进行自定义序列化/反序列化?

python - PyQt4 信号和槽 - QToolButton

python - 消除 CSV 文件中不需要的换行符

python - 将 UUID 添加到 pandas DF