对许可证文件使用非对称加密

时间:2016-01-23 18:44:13

标签: c# encryption encryption-asymmetric

我想向客户端发送一个加密文件,其中包含我的应用程序的许可证数据。由于我将使用非对称加密,我将使用私钥加密文件并将其发送到客户端。客户端PC上的应用程序将使用位于应用程序代码中的公钥解密发送的文件。

此处的威胁模型I方面是可以从应用程序.dll文件中提取公钥(例如使用.net反射器)并用于重新生成许可证。

有没有办法保护我的申请?

更新

我浏览了以下link中的代码示例,以加密xml文件。

我现在面临的问题是,根据代码示例,两个密钥将在客户端pc中生成,与我的相同。这是正确的还是我的误解?

另外,由于Alexe Barlescu建议使用ProtectedData类来保护私钥,我该如何实现呢?

1 个答案:

答案 0 :(得分:0)

非对称加密使用两个键:

  • 用于加密数据的公钥
  • 用于解密数据的私钥

使用客户端的公钥加密包含许可证的文件,因此只有他可以使用他的私钥解密它。 要使客户端的私钥安全,请使用位于System.Security.Cryptography命名空间中的ProtectedData类中的Protect方法对其进行加密。私钥将被加密存储在他的计算机上,只有当他需要解密您发送的消息时才可以解密密钥。