开发者社区> 问答> 正文

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

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

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

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

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 12:33:37 596 0
1 条回答
写回答
取消 提交回答
  • 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/

    回答来源:stackoverflow

    2020-03-24 12:33:45
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载