我想从任何类Unix系统(如果可能的话)获得一个唯一的id,每次我的应用程序在同一台机器上运行时它都会持久化.如果有可能,我想从Linux或FreeBSD或Solaris等获得相同的ID ...我不想为每台机器生成一个新的id,但是获得一个已经存在的id,我更喜欢这个id来自操作系统,我不喜欢使用类似MAC地址的东西.
如果没有其他可用选项,我可以将MAC与其他内容结合使用,例如id可以是MAC地址组合的md5哈希值.
我想听听你的建议.
如果它有用,我的应用程序是用C/C++编写的.
所有这一切的目的是阻止用户运行我的应用程序两次或更多次.我想只运行一次.
可能重复:
生成唯一硬件ID的可靠方法
我试图生成一个特定计算机唯一的ID.ID不会随机生成.它将基于计算,使得为计算机A生成的ID将是固定的并且对计算机A是唯一的.每当程序在计算机A上执行时,它将继续生成相同的ID,并且当在另一台计算机上执行时,它将生成该计算机唯一的另一个ID.这是为了确保两台计算机不具有相同的ID.
我的挑战:为了使我的程序能够生成计算机唯一的ID,它需要根据执行它的计算机所特有的种子执行计算.
我的问题: 如何获得计算机唯一的值,以便我可以将该值用作ID生成程序中的种子?
是否有可能从计算机的硬件(例如主板)获取该计算机独有的值?这样,只要不更换计算机的主板,该值很可能不会改变.
我在Visual Studio 2010中开发了一个C#win表单应用程序并为其提供安全性我通过使用系统cpuId,biosId,diskId生成机器相关键.看起来像
现在在安装程序中,我只是得到一个如下所示的键输入区域.

我想在串行键输入区域上方显示为特定系统创建的机器密钥.
我需要的是软件的最终用户或买家打电话给我并给我机器密钥,然后我将使用该密钥计算密钥并发回给客户或买家.
这是我的第一个安装项目,所以我完全没有意识到这件事.我将非常感谢你的谦虚回应.