这是我的第一个问题所以请温柔......
我正在研究一种我想使用某种许可方案保护的软件.一个基本方案是为用户生成一些"唯一"密钥.当用户想要注册软件并接收激活码时,用户发送该密钥和注册码.
当应用程序运行时,它通过比较"唯一"键和通过解密激活码接收的数据包来验证激活码.
这是公平且非常简单的实现,可以选择不同的加密算法等.但是这个方案缺少两个属性:
您对如何解决这些问题有任何建议吗?
我的一个想法是将一些随机数据添加到"唯一"密钥,这个随机数据将以一种模糊的方式存储,如果用户卸载应用程序,这个随机数据将被删除,并且某种哈希与之前的随机数据将生成数据和许可证数据,可以发送给我以验证他确实已经卸载了应用程序,并确保他无法再次使用以前的许可证数据,因为随机数据已经更改.
过去,现在......
编辑:我目前有一个有效的方案,我应该提到最常见的产品安装在嵌入式环境中,硬件变化非常罕见,如果出现硬件故障,那么大多数情况下机器都坏了.但我可以修改硬件密钥方案以考虑并允许一些更改.
也正因为如此,软件很可能不会在虚拟机内部运行,虽然好点,但我没想过.
应用程序不会定期调用,如果网络连接可用,用户可以选择进行更自动的注册,否则他/她获得注册密钥,将其输入软件并获取提供给我的安装ID ,注册码+安装ID生成用户从我那里获取的激活密钥,然后解锁软件.
我正在寻找的是2点的好/可行解决方案.硬件欺骗,撤销许可证密钥,即确保用户不能使用相同的regcode + activationcode.
感谢您的所有反馈
没有必要