可能重复:
生成唯一的机器 ID
我正在尝试为我们正在构建的软件建立许可机制。我们有一个可以使用该软件的机器的白名单。
机器的哪些部分是独特的,可以用作指纹的一部分?
您的问题(用于执行软件许可证的访问控制)通常类似于安全/加密问题。但第一条规则是:永远不要推出自己的加密货币。我认为这绝对适用于此。
考虑一下击败所有可能找到的身份机制是多么容易。然后考虑修补二进制文件以不执行会驱动它执行“您的软件未经许可”代码的比较是多么容易。现在考虑下载一个对世界上每个人都适用的补丁是多么容易。
现在尝试平衡您阻止无法弄清楚这一点的用户的愿望与对合法用户的影响,这些用户会在更换故障硬盘时发现您的软件“损坏”(使用洪水区部件构建,例如: )。当您在没有 NIC 或磁盘的平台上时,您的软件将如何反应(完全可行,您的软件可能比您使用的任何硬件 API 持续时间更长)。它会失败安全/偏执,还是失败兼容/信任?你确定你真的要继续这个计划吗?
如果您确实需要许可机制,请考虑使用一种算法来生成许可标识字符串。