参考这个问题的答案,我无法理解如果私钥保存在许可证服务器上并且公钥是在应用程序可执行文件中提供的,软件许可方案如何工作,反之亦然。
我正在尝试执行以下软件许可方案:
- 用户在购买时获得一个产品 ID(基于GUID)并在应用程序中使用它来激活它。
- 应用程序连接到使用 RSA 公钥发回加密文本的许可证服务器。此文本(许可证)将存储在用户的硬盘上。
- 每次应用程序启动时,它都需要使用 RSA 私钥解密此许可证,以便提取不同的参数,如产品版本、产品限制、注册到什么公司等。
如果应用程序没有私钥而是公钥,应用程序如何解密此许可证文本?
谢谢!
编辑:
- 如果用于加密许可证的密钥仅在服务器端可用,而对公众不可用,我们可以称其为私钥吗?在这种情况下,如果一方拥有加密密钥,另一方(公众)拥有解密密钥,那么拥有解密密钥的一方能否获得加密密钥呢?担忧基于stackoverflow上的各种主题,即在给定私钥的情况下生成公钥并不难。如果您拥有私钥,那么您实际上可以同时拥有这两个密钥。
- 这个想法是,一旦软件被激活,它就不再需要连接到许可证服务器。