我正在尝试使用 Microsoft 的 LicenseProvider 找到可靠的许可方案。我的想法是通过 RSA(具有 2048 位密钥的 RSACryptoServiceProvider)的方式使用异步加密。我发现这很容易,但我不确定这个机制到底有多安全。这不是为了好玩,需要对美国的许多产品(我们说的是大约 100 次安装)进行复制保护。不需要截止日期。
现在,我使用私钥来加密许可证文件 (.lic)。在客户的计算机上,许可证管理器将在运行时将计算机的唯一 ID 与 .lic 文件中存储的唯一 ID 进行核对。由于产品将具有相应的公钥,因此它可以解密文件。如果 ID 匹配,则许可证有效并且程序启动。
(顺便说一句,计算机 ID 是:MAC 地址 + CPU 序列号 + 硬盘驱动器序列号的组合。因此,如果其中一项发生更改,则需要更新许可证)
就这么简单?如我所见,即使您可以解密 .lic 文件,也永远无法再次加密它,因为您没有所需的私钥。
现在,除了购买昂贵的第 3 方解决方案、破解和规避许可 DLL 之外,您认为使用 RSA+computerID 的想法有多安全?
(是的,我们正在研究混淆代码以使其更好)
感谢您的反馈!