我需要从一台PC生成一个唯一的代码,我的软件将通过许可证分发,在本地我需要识别环境并将此代码发送到服务器.我不想在服务器上保留一个序列号,每个客户端都接收到一些序列,我试图从NetworkInterfaces读取MAC地址,但是不安全,用户可以轻松更改MAC地址.我认为如果它可以读取主板序列号的最佳方式,但直到现在我还没有找到方法.任何消化?
我知道有几种方法可以创建免费试用版.我想到的算法如下:
得到一些标识安装应用程序的计算机的东西.假设我选择获取可能类似于以下内容的Windows产品ID:00247-OEM-8992485-00078.
然后哈希那个字符串并说我最终得到了字符串:ckeer34kijr9f09uswcojskdfjsdk
然后用随机字母和数字创建一个文件,如下所示:
ksfjksdfjs98w73899wf89u289uf9289frmu2f98um98ry723tyr98re812y89897982433mc98lpokojiaytfwhjdegwdehjhdjwhbdwhdiwhd78ey8378er83r78rhy378wrgt37678er827yhe8162e682eg8gt66gt .....等等
然后在随机生成的文件中找到第二个数字(在这种情况下是8)也找到最后一个数字(在这种情况下它是6)现在乘以这些数字然后得到48:那么这将是我将要的位置开始把我得到的哈希字符串,如果你记得的话是:ckeer34kijr9f09uswcojskdfjsdk,所以文件的48个字符碰巧是'f',所以用散列字符串的第一个字符c替换'f'.所以将f替换为c.然后将两个字符向右移动到50位并放置下一个哈希字符串字符等...
我还可以加密文件并解密它以便更安全.
每次用户打开程序时,检查该文件并查看它是否遵循算法.如果它不遵循算法那么它意味着它不是完整版程序.
所以你可以看到我只需要获得一些关于计算机的独特信息.我想到获得Windows产品密钥,我认为这将是独特的,但我不知道如何得到它.我想到的另一件事是获取mac地址.但我不认为这是有效的,因为如果用户更改它的尼卡,那么该程序将无法正常工作.任何有关计算机的独特信息都会对我有所帮助.