C# 不太了解RSA许可方案的最后一步

C# 不太了解RSA许可方案的最后一步,c#,encryption,cryptography,rsa,C#,Encryption,Cryptography,Rsa,我正在生成公钥和私钥。我的私钥一直保存在我的身边,而我们出售的插件二进制文件也将与公钥一起提供。在客户插件方面,我们获取一个“指纹”并对其进行散列,然后与其他一些实现细节一起对其进行rsa加密,并通过web发送一个lic.请求 在我们这边,服务器获取lic。请求,并使用私钥解密。然后调出客户,检查指纹的增量和其他类似的细节,如收到的付款 现在我的问题是我的回答。假设一切正常。我需要用一个有效的密钥响应请求。在我这边生成密钥非常简单,作为响应发送是直接的……但是我的插件产品如何知道它是有效的呢 如

我正在生成公钥和私钥。我的私钥一直保存在我的身边,而我们出售的插件二进制文件也将与公钥一起提供。在客户插件方面,我们获取一个“指纹”并对其进行散列,然后与其他一些实现细节一起对其进行rsa加密,并通过web发送一个lic.请求

在我们这边,服务器获取lic。请求,并使用私钥解密。然后调出客户,检查指纹的增量和其他类似的细节,如收到的付款

现在我的问题是我的回答。假设一切正常。我需要用一个有效的密钥响应请求。在我这边生成密钥非常简单,作为响应发送是直接的……但是我的插件产品如何知道它是有效的呢

如果我对它进行rsa加密,插件产品…只包含公钥…无法解密。如果我嵌入某种形式的有效许可证检查代码,那么它很容易被反汇编,密钥也可能被伪造

我知道我不能让它防裂。我只是想在门上安装门闩,也许还有一个或两个安全摄像头在看东西……本质上,比起买所有的设备和花时间破门而入,花更少的精力来购买产品

为了清楚起见,我重申一下。这个问题并没有产生许可证密钥响应……尽管我总是愿意学习或听取其他想法

问题是,一旦回复到我的客户插件二进制文件,我如何验证这是我生成的密钥…从而解锁产品以供使用


非常感谢您对患者的帮助。

若要验证您的响应,您可以在服务器上使用私钥对其进行签名,客户端软件可以使用公钥对其进行验证。若要使其更安全,您可以使用一对密钥进行加密/解密,另一对密钥进行签名/验证


如果要在客户端上解密,则可以将每个客户端配置为使用其自己的密钥。如果无法配置,则可以从某个设备ID派生对称密钥。当然,在这种情况下,需要将设备ID与加密请求一起包含。这也不是完全验证方案,但如果没有受信任的开发人员,则不可能反正是冰。

好吧,我想这可能是我的误解。我可以通过公钥进行验证,但不能解密。