我一直试图想办法阻止人们篡改我的软件附带的许可证文件。我一直在研究RSA并使用签名来验证数据。
根据我的理解,我基本上有一些数据(许可证文件),我使用RSACryptoServiceProvider的SignData方法为使用通过ExportParameters(true)创建的公钥和私钥创建数据签名。
然后我会将许可文件和公钥与软件一起提供,以便我可以使用VerifyData验证客户端上的数据(许可证),但是什么是阻止用户创建自己的公钥/私钥对并重新创建数据只是覆盖公钥和数据?
我一直在读书并做一些谷歌搜索,但我仍然坚持这一点,我对加密和签名也相当新,但我需要解决这个问题。
我知道确保像文件这样的许可证几乎是不可能的,因为他们希望他们只能反编译代码并删除支票,所以我只是想让他们更难滥用软件,我不知道不希望他们能够自己制作许可证或将一个许可证移到另一台机器上。
有人能指出我正确的方向或提供一些建议吗?
谢谢。
答案 0 :(得分:4)
没有什么能阻止他们。将加密技术应用于软件许可的全部意义在于为法庭使用提供更有力的证据。
不要花费太多时间来使您的许可系统难以规避(越复杂,越多人将其视为挑战),而是确保您的付费客户不会受到阻碍。< / p>