参照answer of this question公钥软件许可解密我不明白,如果私有密钥保存在许可服务器和公钥运在应用软件许可方案如何能工作可执行文件,而不是反之。存储在应用程序二进制
我尝试做以下的软件许可方案:
- 用户在购买后得到一个产品ID(基于GUID),并使用该应用程序内将其激活。
- 应用程序连接到使用RSA公钥发回加密文本的许可证服务器。该文本(许可证)将存储在用户的硬盘上。
- 每次应用程序启动时,它需要使用RSA私钥解密该许可证,以便提取不同的参数,如产品版本,产品限制,注册什么公司等
如何应用此解密如果它没有私钥但是公钥有许可证文本?
谢谢!
编辑:
- 如果使用许可加密密钥仅适用于服务器端,而不是市民,我们可以称之为一个私钥?在这种情况下,如果一方拥有加密密钥,而另一方(公众)拥有解密密钥,那么拥有解密密钥的一方是否可以获得加密密钥?关注点基于stackoverflow上的各种主题,在给定私钥的情况下生成公钥并不困难。如果你有私钥,你可以有两个密钥。
- 这个想法是,一旦软件被激活,它不应该再需要连接到许可证服务器。
我需要加密的那些细节,它们包含有关应用程序使用的限制,如基本版,企业版等信息,如果是在纯文本应用程序可以通过简单地改变文本解锁。 – 2013-02-11 14:43:06
@MarcusFrenkel服务器签名不会验证数据是否被更改。 – 2013-02-11 18:32:10
@MarcusFrenkel:签名就是这样。如果用户修改任何内容,签名将不再匹配,并且用户不能在没有服务器的公钥的情况下重新签名。 – SLaks 2013-02-11 18:35:51