根据MAC地址和用户名生成确定性UID

2024-04-20 01:33:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个Python例程来生成DICOM文件。在这种情况下,我需要指定Instance Creator UID标记,该标记用于唯一标识创建DICOM文件的设备。 因此,我需要一个函数为给定的机器和启动DICOM创建例程的特定用户生成这样的UID

我猜UUID可以从MAC地址和用户名创建。但是,python中使用uuid模块生成的UID是随机的,因此每次调用例程时UID都是不同的

是否有一种方法可以生成取决于MAC地址和用户名的确定性UID


Tags: 文件instance函数用户标记机器uidmac
1条回答
网友
1楼 · 发布于 2024-04-20 01:33:32

UUID3和5是基于名称的UUID,因此它们不会随机更改(按时间成分)

import uuid
import getpass

username = getpass.getuser(). # Username
node = hex(uuid.getnode())  # MAC address

urn = 'urn:node:%s:user:%s' % (node, username)

for i in range(3):
    print (uuid.uuid3(uuid.NAMESPACE_DNS, urn))

输出:

4b3be55c-c6d9-3252-8b61-b16700fa6528
4b3be55c-c6d9-3252-8b61-b16700fa6528
4b3be55c-c6d9-3252-8b61-b16700fa6528

有关更多信息,请访问https://pymotw.com/3/uuid/

相关问题 更多 >